面向对象:6大原则、24种设计模式

接上一篇:面向对象介绍

为什么要学设计原则、设计模式?

若不学好经典设计模式,和通过设计模式理解面向对象的原则,你将不能很好使用面向对象思想在开发中。

六大原则:

1.单一职责原则(SRP)

2.开放封闭原则(OCP)

3.Liskov替换原则(LSP)

4.依赖倒置原则(DIP)

5.接口隔离原则(ISP)

6.迪米特原则(LOD)

一:单一职责原则(SRP)

一个类只负责一个领域中相应功能的职责,或者可以定义为:就一个类而言,应该只有一个引起它变化的原因。

对象的职责越少,则对象之间的依赖关系就越少,耦合度减弱,受其他对象的约束与牵制就越少,从而保证了系统的可扩展性。

二:开放封闭原则(OCP)

软件模块应该对扩展开放,对修改关闭。

在程序需要进行新增功能的时候,不能去修改原有的代码,而是新增代码,实现一个热插拔的效果(热插拔:灵活的去除或添加功能,不影响到原有的功能)。

目的:为了使程序的扩展性好,易于维护和升级。

三:Liskov替换原则(LSP)

里氏代换原则是继承复用的基石,只有当衍生类可以替换掉基类,软件单位的功能不受到影响时,基类才能真正被复用,而衍生类也能够在基类的基础上增加新的行为。

举例:球类,原本是一种体育用品,它的衍生类有篮球、足球、排球、羽毛球等等,如果衍生类替换了基类的原本方法,如把体育用品改成了食用品(那么软件单位的功能受到影响),就不符合里氏代换原则。

目的:对实现抽象化的具体步骤的规范。

四:依赖倒置原则(DIP)

针对接口编程,而不是针对实现编程。

举例:以计算机系统为例,无论主板、CPU、内存、硬件都是在针对接口设计的,如果针对实现来设计,内存就要对应到针对某个品牌的主板,那么会出现换内存需要把主板也换掉的尴尬。

目的:降低模块间的耦合。

五:接口隔离原则(ISP)

使用多个隔离的接口,比使用单个接口要好。

举例:比如:登录,注册时属于用户模块的两个接口,比写成一个接口好。

目的:提高程序设计灵活性。

六:迪米特原则(LOD)

一个实体应当尽量少的与其他实体之间发生相互作用,使得系统功能模块相对独立。

举例:一个类公开的public属性或方法越多,修改时涉及的面也就越大,变更引起的风险扩散也就越大。

目的:降低类之间的耦合,减少对其他类的依赖。

24种设计模式

面向对象:6大原则、24种设计模式_第1张图片
24种设计模式

对不同语言,设计模式的具体代码写法不同,可以从上图中选择常见的设计模式(如:单例,代理,观察者),然后去Google自己正在使用的语言代码,加油!

你可能感兴趣的:(面向对象:6大原则、24种设计模式)