简称SOLID编程
1. 单一职责原则spa
职责定义为引发变化的缘由。一个类,最好只作一件事,只有一个引发它的变化。不要为类实现过多的功能点,以保证明体只有一个引发它变化的缘由。职责过多,可能引发它变化的缘由就越多,这将致使职责依赖,相互之间就产生影响,从而大大损伤其内聚性和耦合度。.net
2. 开放封闭原则设计
对扩展开放,对修改封闭的。体如今两个方面一、对扩展开放,意味着有新的需求或变化时,能够对现有代码进行扩展,以适应新的状况。二、对修改封闭,意味着类一旦设计完成,就能够独立完成其工做,而不要对其进行任未尝试的修改。
实现的核心思想就是对抽象编程,而不对具体编程,由于抽象相对稳定。让类依赖于固定的抽象,因此修改就是封闭的;而经过面向对象的继承和多态机制,又能够实现对抽象类的继承,经过覆写其方法来改变固有行为,实现新的拓展方法,因此就是开放的。
3. 替换原则对象
子类必须可以替换其基类。继承必须确保超类所拥有的性质在子类中仍然成立。”也就是说,当一个子类的实例应该可以替换任何其超类的实例时,它们之间才具备is-A关系。将基类替换为子类,程序的行为不会发生任何变化。这一约束反过来则是不成立的。继承而且覆盖超类方法的时候,子类中的方法的可见性必须等于或者大于超类中的方法的可见性,子类中的方法所抛出的受检异常只能是超类中对应方法所抛出的受检异常的子类。blog
4. 依赖倒置原则继承
依赖于抽象。具体而言就是高层模块不依赖于底层模块,两者都同依赖于抽象。依赖于抽象,就是对接口编程,不要对实现编程。
依赖必定会存在于类与类、模块与模块之间。当两个模块之间存在紧密的耦合关系时,最好的方法就是分离接口和实现:在依赖之间定义一个抽象的接口使得高层模块调用接口,而底层模块实现接口的定义,以此来有效控制耦合关系,达到依赖于抽象的设计目标。
抽象的稳定性决定了系统的稳定性,由于抽象是不变的,依赖于抽象是面向对象设计的精髓,也是依赖倒置原则的核心。接口
5. 接口隔离原则 扩展
一个类对另一个类的依赖应该创建在最小的接口上,不要强迫依赖不用的方法。一个接口表明一个角色,不该当将不一样的角色都交给一个接口。请求
分离的手段主要有如下两种:一、委托分离,经过增长一个新的类型来委托客户的请求,隔离客户和接口的直接依赖,可是会增长系统的开销。二、多重继承分离,经过接口多继承来实现客户的需求,这种方式是较好的。
参考:http://blog.csdn.net/luxiaoxun/article/details/8041885