面向对象五大原则(SRP、OCP、LSP、DIP、ISP)
2016-11-23 19:38
363 查看
详见:http://blog.yemou.net/article/query/info/tytfjhfascvhzxcyt173
OO的五大原则是指
1. SRP(Single Responsibility Principle 单一职责原则)
单一职责很容易理解,所谓单一职责,就是一个设计元素只做一件事。
2. OCP (Open Close Principle 开闭原则)
一句话:“Closed for Modification; Open for Extension”——“对变更关闭;对扩展开放”。
3. (Liskov Substitution Principle 里氏替换原则)
子类应当可以替换父类并出现在父类能够出现的任何地方。这个原则是Liskov于1987年提出的设计原则。它同样可以从Bertrand Meyer 的DBC (Design by Contract) 的概念推出。我们以学生为例,夜校生为学生的子类,因此在任何学生可以出现的地方,夜校生均可出现。这个例子有些牵强,一个能够反映这个原则的例子时圆和椭圆,圆是椭圆的一个特殊子类。因此任何出现椭圆的地方,圆均可以出现。但反过来就可能行不通。运用替换原则时,我们尽量把类B设计为抽象类或者接口,让C类继承类B(接口B)并实现操作A和操作B,运行时,类C实例替换B,这样我们即可进行新类的扩展(继承类B或接口B),同时无须对类A进行修改。
4.(Dependence Inversion Principle 依赖倒置原则)
依赖倒置(Dependence Inversion Principle)原则讲的是:要依赖于抽象,不要依赖于具体。简单的说,依赖倒置原则要求客户端依赖于抽象耦合。原则表述:抽象不应当依赖于细节;细节应当依赖于抽象;要针对接口编程,不针对实现编程。
5.(Interface Segregation Principle 接口分隔原则)
采用多个与特定客户类有关的接口比采用一个通用的涵盖多个业务方法的接口要好。ISP原则是另外一个支持诸如COM等组件化的使能技术。缺少ISP,组件、类的可用性和移植性将大打折扣。这个原则的本质相当简单。如果你拥有一个针对多个客户的类,为每一个客户创建特定业务接口,然后使该客户类继承多个特定业务接口将比直接加载客户所需所有方法有效。
OO的五大原则是指
1. SRP(Single Responsibility Principle 单一职责原则)
单一职责很容易理解,所谓单一职责,就是一个设计元素只做一件事。
2. OCP (Open Close Principle 开闭原则)
一句话:“Closed for Modification; Open for Extension”——“对变更关闭;对扩展开放”。
3. (Liskov Substitution Principle 里氏替换原则)
子类应当可以替换父类并出现在父类能够出现的任何地方。这个原则是Liskov于1987年提出的设计原则。它同样可以从Bertrand Meyer 的DBC (Design by Contract) 的概念推出。我们以学生为例,夜校生为学生的子类,因此在任何学生可以出现的地方,夜校生均可出现。这个例子有些牵强,一个能够反映这个原则的例子时圆和椭圆,圆是椭圆的一个特殊子类。因此任何出现椭圆的地方,圆均可以出现。但反过来就可能行不通。运用替换原则时,我们尽量把类B设计为抽象类或者接口,让C类继承类B(接口B)并实现操作A和操作B,运行时,类C实例替换B,这样我们即可进行新类的扩展(继承类B或接口B),同时无须对类A进行修改。
4.(Dependence Inversion Principle 依赖倒置原则)
依赖倒置(Dependence Inversion Principle)原则讲的是:要依赖于抽象,不要依赖于具体。简单的说,依赖倒置原则要求客户端依赖于抽象耦合。原则表述:抽象不应当依赖于细节;细节应当依赖于抽象;要针对接口编程,不针对实现编程。
5.(Interface Segregation Principle 接口分隔原则)
采用多个与特定客户类有关的接口比采用一个通用的涵盖多个业务方法的接口要好。ISP原则是另外一个支持诸如COM等组件化的使能技术。缺少ISP,组件、类的可用性和移植性将大打折扣。这个原则的本质相当简单。如果你拥有一个针对多个客户的类,为每一个客户创建特定业务接口,然后使该客户类继承多个特定业务接口将比直接加载客户所需所有方法有效。
相关文章推荐
- 面向对象基础:OO的五大原则是指SRP、OCP、LSP、DIP、ISP
- 敏捷开发之原则 五大原则 SRP OCP LSP DIP ISP
- OO的五大原则:SRP、OCP、LSP、DIP、ISP
- OO的五大原则:SRP、OCP、LSP、DIP、ISP
- OO的五大原则是指SRP、OCP、LSP、DIP、ISP。
- 敏捷实践:SRP OCP LSP DIP ISP原则
- 系统设计原则--SRP OCP LSP DIP ISP
- OO的五大原则是指SRP、OCP、LSP、DIP、ISP。
- OOD原则:SRP、OCP以及LSP
- PHP面向对象五大原则之里氏替换原则(LSP)详解
- PHP面向对象五大原则之依赖倒置原则(DIP)详解
- PHP面向对象五大原则之单一职责原则(SRP)详解
- PHP面向对象五大原则之开放-封闭原则(OCP)详解
- PHP面向对象五大原则之接口隔离原则(ISP)详解
- UML中的 SRP、OCP、LSP、DIP、CARP的中英文全称和意义
- 在Android如何在保证满足面向对象的单一原则(SRP)和开闭原则(OCP)的条件下,完成线程池的使用
- OOD三个设计原则:SRP(单一职责原则)、OCP(开闭原则)、LSP(Liskov替换原则)
- 深入理解JavaScript系列(22):S.O.L.I.D五大原则之依赖倒置原则DIP
- 面向对象五大原则
- S.O.L.I.D五大原则之开闭原则OCP