OCP(Open-Closed Principle)开闭原则
它的核心含义是:一个好的设计应该能够容纳新的功能需求的增加,但是增加的方式不是通过修改现有的模块(类),而是通过增加新的模块(类)来完成的。
我们要多面向接口编程。对修改关闭,对扩展开放。
SRP(Single Responsibility Principle) 单一职责原则
这个原则的核心含义是:一个类应该有且仅有一个责任。关于责任的含义,面向对象大师Robert.C Martin 有一个著名的定义:所谓一个类的责任是指引起该类变化的原因,如果一个类具有一个以上的责任,那么就含有多个不同的原因引起该类的变化,其实就是耦合了多个互不相干的责任,就会降低这个类的内聚性。
其实觉得和
Domain Driven Design 中强调的指导原则:
Conceptual dependency(概念依赖)有相通之处。
Conceptual dependency, 书中给出的描述的是业务职责层上层的对象需要通过下层对象才能在概念上完整,
相反下层对象则可独立于上层对象存在含义。这样天然的下层对象相对于上层对象会更稳定。并且在今后演变的过程中,使同扩展的方式来完善系统,而不是改变对象的方式。
DIP(Dependence Injection Principle)依赖注入原则
这个原则的核心含义是:高层模块不应该直接依赖于底层模块,所有的模块都要依赖于抽象。也就是说,容易变化的东西一定要依赖于不容易变化的东西,因为抽象的东西最不容易变化,具体的东西容易变化,所以具体应该依赖于抽象。
现有开源框架中像SpringFramework和PicoContainer此等轻量级容器都已经实现了IOC(Inversion Of Control),Margin Flower更喜欢称之为DIP。
。。。。。。
它的核心含义是:一个好的设计应该能够容纳新的功能需求的增加,但是增加的方式不是通过修改现有的模块(类),而是通过增加新的模块(类)来完成的。
![](http://blog.csdn.net/Emoticons/wink_smile.gif)
SRP(Single Responsibility Principle) 单一职责原则
这个原则的核心含义是:一个类应该有且仅有一个责任。关于责任的含义,面向对象大师Robert.C Martin 有一个著名的定义:所谓一个类的责任是指引起该类变化的原因,如果一个类具有一个以上的责任,那么就含有多个不同的原因引起该类的变化,其实就是耦合了多个互不相干的责任,就会降低这个类的内聚性。
![](http://blog.csdn.net/Emoticons/wink_smile.gif)
Conceptual dependency, 书中给出的描述的是业务职责层上层的对象需要通过下层对象才能在概念上完整,
相反下层对象则可独立于上层对象存在含义。这样天然的下层对象相对于上层对象会更稳定。并且在今后演变的过程中,使同扩展的方式来完善系统,而不是改变对象的方式。
DIP(Dependence Injection Principle)依赖注入原则
这个原则的核心含义是:高层模块不应该直接依赖于底层模块,所有的模块都要依赖于抽象。也就是说,容易变化的东西一定要依赖于不容易变化的东西,因为抽象的东西最不容易变化,具体的东西容易变化,所以具体应该依赖于抽象。
![](http://blog.csdn.net/Emoticons/wink_smile.gif)
。。。。。。