单一职责原则
单一职责原则的核心思想是:一个类最好只做一件事,只有一个引起它变化的原因。 单一职责原则可以看作高内聚,低耦合在面向对象原则上的引申,将职责定义为引起变化的原因,以提高内聚性来减少引起变化的原因。
开放封闭原则
开放封闭原则的核心思想是:软件实体应该是可扩展且不可修改的。也就是说,对扩展开放,对修改封闭。
- 对扩展开放,意味着当有新的需求变化时,可以对现有的代码进行扩展,以适应新的情况。
- 对修改封闭,意味着类一旦设计完成,就可以独立完成其工作,而不要对其尝试任何的修改。
实现开放封闭原则的核心思想就是对抽象(如接口,抽象类等)编程,因为抽象相对稳定。让类依赖于固定的抽象,所以修改就是封闭的。而通过面向对象的继承和多态机制,有事可以实现对抽象类的继承,通过重写其方法来改变固有行为,实现新的扩展方法,所以就是开放的。
里氏替换原则
里氏替换原则的核心思想是:子类必须能够替换其基类。这一思想体现为对继承机制的约束规范,只有当子类能够替换基类时,才能保证系统在运行期内识别子类,这是保证继承复用的基础。 在父类和子类的具体行为中,必须严格把握继承层次中的关系和特征,将父类替换成子类,程序的行为不会发生任何变化。同时,这一约束反过来则是不成立的,子类可以替换基类,但基类不一定能替换子类。 里式替换原则主要着眼于对抽象和多态简历在继承的基础上,因此只有遵循了里氏替换原则,才能保证继承复用是可靠的。 里氏替换原则的实现方法是面向接口编程:将公共部分抽象为基类接口或抽象类,通过继承的方式,在子类中复写父类的方法,实现新的方式支持同样的职责。 里氏替换原则是关于继承机制的设计原则,若违反了该原则,则必然会违反开放闭合原则。
接口隔离原则
接口隔离原则的核心思想是:使用多个小的专门的接口,而不要使用一个大的总接口。 具体而言,接口隔离原则体现在:接口应该是内聚的,应该避免“胖”接口。一个类对另一个类的依赖应该建立在最小的接口上,不要强迫依赖不用的方法,这是一种接口污染。 分离接口的主要方法有两种
- 委托分离,通过增加一个新的类型来委托客户的请求,隔离客户和接口的直接依赖,但是会增加系统的开销。
- 多重继承分离,通过接口多继承来实现客户的需求,这是种较好的方式。
依赖倒置原则
依赖倒置原则的核心思想是:程序要依赖于抽象接口,而不是具体的实现。简单的说,就是要对抽象进行编程,而不要对实现进行编程。 在面向过程的开发中,上层依赖于下层,当下层发生重大变化时,上层也要跟着变动,这就会导致模块的复用性降低,大大提升了开发的成本。而面向对象的开发很好的解决了这个问题,通过分离接口与实现,使得类与类,模块与模块之间只依赖于接口,而不依赖于具体的实现类。在一般情况下,抽象的接口的变化概率是很小的,依赖接口而不依赖具体实现,即使实现细节不断改动,只要抽象不变,上层依赖就不需要改动。这大大降低了客户程序与实现细节的耦合度。
标签:原则,继承,子类,接口,面向对象,抽象,五大,替换 From: https://blog.51cto.com/u_15487307/5868815