设计模式六大原则
开闭原则:
一个软件实体如类、模块和函数应该对扩展开放,对修改关闭。
软件实体包括:
1.项目软件中按照一定的逻辑规则划分的模块
2.抽象和类
3.方法
如何使用:
1.抽象约束
1)通过接口或抽象类的扩展
2)参数类型、引用对象尽量使用接口或抽象类,而不是实现类
3)抽象层尽量保持稳定,一但确定即不允许修改
2.元数据(metadata)控制模块行为(配置文件参数控制)
3.制定项目章程
4.封装变化
1)将相同的变化封装到一个接口或者抽象类中
2)将不同的变化封装到不同的接口或者抽象类中,不应该有两个或两个以上不同的变化出现在同一个接口或者抽象类中
单一原则:
一个类只负责一项职责
优点:
1. 代码可读性高。
2. 易维护。修改一项职责
3. 不用担心会影响到其它的职责。
里氏替换原则:
派生类对象能够替换其基类被使用
优点:
可以在不改变基类的情况下扩展派生类。只需继承,无需改变。
依赖倒置原则:
程序要依赖于抽象接口,而不是依赖具体的实现
1. 高层模块不应依赖于底层模块,两者都需要依赖抽象
2. 抽象不依赖具体的细节,细节依赖于抽象
接口隔离原则:
客户端不应依赖它不需要的接口,类之间的依赖关系应建立在最小的接口上(不出现臃肿的接口,但“ 小 ”具有限度,需遵从单一职责原则)
迪米特法则:
一个实体应尽可能少的跟其他实体发生相互作用。致力于降低各类之间的耦合。
缺点:会造成大量中介类,增加系统复杂性