设计模式-六大原则

1、Open Closed Principle(开闭原则)

Software entities should be open for extension,but closed for modification。

软件实体如模块、类、函数应对扩展开放,对修改关闭。

这个简单看来就是说不要去修改原有功能代码,应该添加代码去扩展原有功能实现新的需求。

开闭原则可以通过‘抽象约束、封装变化’来实现,即通过接口或抽象类为软件实体定义一个抽象层,将相同的可变因素封装到对应的实现类。

使用开闭原则可以提高代码的可复用性、可维护性,降低软件测试的难度。

2、Liskov Substitution Principle(里氏替换原则)

Inheritance should ensure that any property proved about supertype objects also holds for subtype objects。

继承必须确保超类所拥有的性质在子类中仍然成立。

里氏替换原则主要阐述了有关继承的一些原则,是继承复用的基础,它反映了父类和子类的关系,是对开闭原则的补充,对实现抽象化的具体步骤的规范。

通俗来讲就是子类可以扩展父类的功能,但不能改变父类原有的功能。也就是说:子类继承父类时,除了添加新的方法外,尽量不要重写父类的方法。

3、Single Responsibility Principle(单一职责原则)

There should never be more than one reason for a class to change。

一个类只负责一项职责,能引起类的变化的只有一个原因。

单一职责原则降低类的复杂度,提高类的可读性、可维护性,降低变更引起的风险。

4、Interface Segregation Principle(接口隔离原则)

The dependency of one class to another one should depend on the smallest possible interface。

一个类对另一个类的依赖应该建立在最小的接口上。

要为各个类建立它们需要的专用接口,而不要试图去建立一个很庞大的接口供所有依赖它的类去调用。

5、Dependence Inversion Principle(依赖倒置原则)

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。

高层模块不应该依赖低层模块,两者都应该依赖其抽象;抽象不应该依赖细节,细节应该依赖抽象。

依赖倒置原则是实现开闭原则的重要途径之一,降低了客户与实现模块之间的耦合,减少并行开发引起的风险,提高代码可读性和可维护性。

6、Demeter Principle(迪米特原则)

Talk only to your immediate friends and not to strangers。

如果两个软件实体无须直接通信,那么就不应当发生直接的相互调用,可以通过第三方转发该调用,降低类之间的耦合度,提高模块的相对独立性。


分享到:


相關文章: