##### 原贴地址:https://github.com/TIGERB/easy-tips ## 设计模式 ###### 面向对象的设计原则 - 对接口编程,不要对实现编程 - 使用对象之间的组合,减少对继承的使用 - 抽象用于不同的事物,而接口用于事物的行为 ###### 设计模式的设计原则 - 开闭原则:对扩展开放,对修改封闭 + mean: 实例的内部不可修改,但可以增加新功能 - 依赖倒转:对接口编程,依赖于抽象而不依赖于具体 + mean: 就是把公共的拿出来,定义成抽象类、接口、抽象方法,然后大家再去实现这个抽 象,实现的方法各有不同,各个实体相互独立没有依赖,各个实体离开谁都能活 - 接口隔离:使用多个接口,而不是对一个接口编程,去依赖降低耦合 + mean: 就是抽象再抽象 - 最少知道:减少内部依赖,尽可能的独立 + mean: 实现依赖注入容器,把依赖的实体注入到一个实例(所谓容器) - 合成复用:多个独立的实体合成聚合,而不是使用继承 + mean:尽可能不用继承,使用以上三种方式构成代码结构 - 里氏代换:超类(父类)出现的地方,派生类(子类)都可以出现 + mean:能用父类实现的子类也能实现 ###### 简单设计原则 - 通过所有测试:及需求为上 - 尽可能的消除重复:高内聚低耦合 - 尽可能的清晰表达:可读性 - 更少代码元素:常量,变量,函数,类,包 …… 都属于代码元素,降低复杂性 - 以上四个原则的重要程度依次降低 > 核心:高内聚松耦合(单一职责),外部依赖,实体对抽象编程,抽象就是分层