设计模式原则

93 阅读3分钟

开闭原则

含义:当应用程序的需求修改时,在不修改源代码的情况下,可以扩展功能模块,从而满足需求。
一句话:软件中的对象(类,模块,函数等等)对扩展开放,对修改关闭。

里氏替换原则

含义:子类可以扩展父类的功能,但不能改变父类原有的功能
解释:
(1) 子类可以实现父类的抽象方法,但不能覆盖父类的非抽象方法。
(2) 子类中可以增加自己特有的方法。
(3) 当子类的方法重载父类的方法时,方法的前置条件(即方法的形参)要比父类方法的输入参数更宽松。
(4)当子类的方法实现父类的抽象方法时,方法的后置条件(即方法的返回值)要比父类更严格。

依赖倒置原则

含义:高层模块不应该依赖低层模块,两者都应该依赖其抽象;抽象不应该依赖细节,细节应该依赖抽象。
一句话:要面向接口编程,不要面向实现编程。 解释:
1. 每个类尽量提供接口或抽象类,或者两者都具备。
2. 变量的声明类型尽量是接口或者是抽象类。
3. 任何类都不应该从具体类派生。
4. 使用继承时尽量遵循里氏替换原则。

单一职责原则

含义: 一个类应该有且仅有一个引起它变化的原因,否则类应该被拆分
一句话:一个类干一件事(对象层面)

接口隔离原则(懵懂)

含义:客户端不应该被迫依赖于它不使用的方法 体会:接口功能细化,不要要臃肿庞大

迪米特法则

含义:只与你的直接朋友交谈,不跟“陌生人”说话。如果两个软件实体无须直接通信,那么就不应当发生直接的相互调用,可以通过第三方转发该调用 体会:代理模式

合成复用原则(合/聚合复用原则)

含义:它要求在软件复用时,要尽量先使用组合或者聚合等关联关系来实现,其次才考虑使用继承关系来实现。如果要使用继承关系,则必须严格遵循里氏替换原则。合成复用原则同里氏替换原则相辅相成的,两者都是开闭原则的具体实现规范

一句话总结软件设计七大原则

设计原则一句话概括目的
开闭原则对扩展开放,对修改关闭降低维护带来的新风险
依赖倒置原则面向接口编程利于代码结构的扩展升级
单一职责原则一个类只干一件事,实现类要单一便于理解,提高代码的可读性
接口隔离原则一个接口干一件事,接口要精细单一功能解耦,高聚合,低耦合
迪米特法则不该知道的不要知道,一个类应该保持对其它对象最少的了解,降低耦合度只和朋友交流,不和陌生人说话,减少代码臃肿
里氏替换原则不要破坏继承体系,子类重写方法功能发生改变,不应该影响父类方法的含义防止继承泛滥
合成复用原则尽量使用组合或者聚合关系实现代码复用,少使用继承降低代码耦合