分类 设计原则 articles

合成复用原则

定义 合成复用原则(Composite Reuse Principle,CRP)又叫组合/聚合复用原则(Composition/Aggregate Reuse Principle,CARP):它要求在软件复用时,要尽量先使用组合或者聚合等关联关系来实现,其次才考虑使用继承关系来实现。 如果要使用继承关心,必……

Continue reading

迪米特法则

定义 迪米特法则(Law of Demeter):又称最少知识原则(Least Knowledge Principle,LKP),只与你的直接朋友交谈,不跟“陌生人”说话(Talk only to your immediate friends and not to strangers)。其含义是:如果两个软件实体无须直接通信,那么就不应当发生直接的相互调用,可以通过第三方转发……

Continue reading

接口隔离原则

定义 接口隔离原则(Interface Segregation Principle,ISP)要求程序员尽量将臃肿庞大的接口拆分成更小和更具体的接口,让接口中只包含客户感兴趣的方法。定义:客户端不应该被迫依赖于它不适用的方法(Clients should not be forced to depend on methods they do not use)。该原则还有另外一个定义:一个类对另一……

Continue reading

单一职责原则

定义 单一职责原则(Single Responsibility Principle,SRP)又称单一功能原则:规定一个类应该且仅有一个引起它变化的原因,否则类应该被拆分。 该原则提出对象不应该承担太多职责,如果一个对象承担了太多的职责,至少存在以下两个缺点: 一个职责的变化可能会削弱或者抑制这个类实现其他职责的能力……

Continue reading

依赖倒置原则

定义 依赖倒置原则(Dependence Inversion Principle,DIP):高层模块不应该依赖底层模块,两者都应该依赖其抽象;抽象不应该依赖细节,细节应该依赖抽象(High level modules shouldnot depend upon low level modules.Both should depend upon abstractions.Abstractions should not depend upon details. Details should depend upon abstractions)。其核心思想是面向接口编程,不要面向实现编程.……

Continue reading

开放闭合原则

开闭原则 定义 OCP(Open Closed Principle):软件实体应当对扩展开放,对修改关闭(Software entities should be open for extension,but closed for modification)。 这里的软件实体包括以下几个部分: 项目中划分出的模块 类与接口 方法 开闭原则的含义是:当应用的需求改变时,在不修改……

Continue reading