开闭、里氏代换、依赖倒转、单一职责、迪米特五种原则

开放封闭原则:
定义是说软件实体(类、模块、函数等等)应该可以扩展,但是不可以修改。开闭原则是面向对象设计的核心所在。即对扩展是开放的,对于修改是封闭的。
为什么应遵守开闭原则?
1.需求时常在你想不到的地方出现,让你防不胜防。我们在设计时虽然会考虑各种需求变化,但并不能想全面。
2.面对需求,对程序的改动是通过增加新代码进行的,而不是更改现有的代码。
3.遵循这个原则可以带来面向对象技术所声称的巨大好处,也就是可维护、可扩展、可复用、灵活性好。开发人员应该仅对程序中呈现出频繁变化的那些部分做出抽象,然而对于应用程序中的每个部分都刻意地进行抽象同样不是一个好主意。拒绝不成熟的抽象和抽象本身一样重要。

里氏代换原则(CSP):
子类型必须能够替换掉它们的父类型。只有当子类可以替换掉父类,软件单位的功能不受到影响时,父类才能真正被复用,而子类也能够在父类的基础上增加行为

依赖倒转原则:
A.高层模块与低层模块两个都不应该依赖抽象;
B.抽象不应该依赖细节,细节应该依赖抽象。
依赖倒转原则其实可以说是面向对象设计的标志,用哪种语言来编写程序不重要,如果编写时考虑的都是如何针对抽象编程而不是针对细节编程,即程序中所有的依赖关系都是终止于抽象类或者接口,那就是OOP设计,否则为过程化设计。

单一职责原则:
定义就一个类而言,应该仅有一个引起它变化的原因。
软件设计真正要做的许多内容,就是发现职责并把这些职责相互分离。要去判断是否应该分离出类来,也不难,那就是如果你能够想到多于一个的动机去改变一个类,那么这个类就具有多于一个的职责,就应该考虑类的职责分离

迪米特法则:也叫最少知识原则。
定义如果两个类不必彼此通信,那么这两个类就不应该发生直接的相互作用。如果其中一个类需要调用另一个类的某一个方法,可以通过第三者转发这个调用。

迪米特法则首先强调的前提是在类的结构设计上,每一个类都应当尽量降低成员的访问权限。也就是说,一个类包装好自己的private状态,不需要让别的类知道的字段或行为就不要公开。

其根本思想就是强调了类之间的松耦合

类之间的耦合越弱,越有利于复用,一个处在弱耦合的类被修改,不会对有关系的类造成波及。

你可能感兴趣的:(概念应用)