设计模式原则
七大原则
-
开闭原则
软件实体对象(类、模块、方法)对于扩展时开放的,对修改时关闭的。主要强调利用’抽象‘构造框架,利用’实现‘扩展细节功能,提高代码可复用性和可维护性。
-
单一职责原则
一个类、接口、方法负责一个职责。(高内聚)
但是实际上很难满足完全单一职责原则,在类方法足够少时(逻辑足够简单),可部分违背单一职责原则。
-
依赖倒置原则
程序应该依赖接口或者抽象类,而不是实现类。这样保证程序代码的稳定性。
-
接口隔离原则
尽量避免类依赖它不需要的接口,减少接口之间的依赖冗余,一个接口对应一个功能模块。跟单一职责有点类似,但接口隔离针对接口设计,接口内的方法尽可能做细致的划分,做到“术业有专攻”的专门性。
-
里式替换原则
规定了任何父类可以出现的地方子类都一定可以出现,可以约束继承泛滥,加强代码健壮性。是对开闭原则的补充说明。
细致的讲,其是针对继承而言的原则。如果继承是为了实现代码复用,则不会重写父类方法,子类通过添加新方法来扩展功能,且当前父类子类都可以被实例化。这种情况下用子类对象调换父类对象,也可调用到逻辑一致的方法。而如果继承是为了实现多态,即会重写定义(重写)父类的方法,我们应该将父类定义为抽象类,并且定义抽象方法,让子类们重新定义,且当前父类不能实例化,也就不存在子类调换父类的情况了。
-
迪米特原则
模块间的依赖尽可能地少,降低代码耦合度(低耦合)
-
合成/聚合原则
尽量使用组合/聚合模式(has-a/contains-a),而不是通过继承(is-a)达到复用目的,避免方法的污染(子类不具有实现父类行为的能力)和方法爆炸(子类底层类方法过于多、复杂)
分类
-
创建型模式
创建对象时隐藏创建逻辑,不用new实例化对象,使得程序在判断创建哪些对象时更灵活。
包括单例、工厂、抽象工厂、建造者、原型模式
-
结构型模式
通过类和接口之间的继承、引用来创建复杂的对象。
包括适配器、桥接、组合、装饰、外观、享元、代理模式
-
行为模式
通过类来实现不同的行为。
包括责任链、命令、迭代器、中介者、备忘录、观察者、状态、策略、模板方法、访问者模式

浙公网安备 33010602011771号