# 设计模式思考

***

## DRY 原则 (don't repeat yourself) --> 单一原则

```
       坑                                    避坑
  时刻想着重用性                          先可用，再重用
  想着需求会变化，过度设计                  抓住需求重点，适度设计
  写一次性的代码                          写简单易懂的代码
```

## KISS 原则 (Keep it simple and stupid) --- 简单原则

* 要写让普通人都能看懂的代码，像文章一样。
* 实现逻辑尽可能简单
* 逻辑应该更加清晰，不要经常打补丁。

## YAGNI 原则 (you ain't gonna need it)

* 在软件开发中希望不要写这种类型的代码，并且遵守这个原则会更好地实现KISS原则。

## LoD 迪米特法则 (law of demeter, 也称 最少知识原则)

* 定义： 一个类对于其他类知道得越少越好，就是说一个对象应当对其他对象有尽可能少地了解,只和朋友通信，不和陌生人说话。 英文简写为: LOD。
  1. 类只应该与它直接相关的类通信
  2. 类只需要属于自己的最少知识就好 如A有子集a， B要获取A的子集，应该从A获取，而不是自己构造一个a，因为a不是B所应有的属性。
