设计模式六大原则

来源:互联网 发布:python 多线程 锁 编辑:程序博客网 时间:2024/06/10 04:44

设计模式个人总结与理解

设计模式理解:

设计模式(Design Pattern)是一套面向对象的代码设计经验总结,是在编程领域被反复使用、被多数人知晓。而且经过分类整理的代码设计方法。

合理利用设计模式可以提高代码复用率、让代码更容易被他人理解、保证代码可靠性。

设计模式是一种思想,也是一种技术,也是一种解决方案。

设计模式是针对某种情况的解决方案,何时使用何种设计模式,取决于开发的情况。

设计模式六大设计原则:

单一职责原则:

单一职责原则,每一个类只完成一种类型的功能,每一个类只有一个职责。或者说,对于一个类,应该只有一个引起它变化的原因。例如,一个组装汽车的系统,A类负责组装轮子,B类负责组装车窗,C类负责组装引擎....。每一个类都有他们的一个职责,他们各自负责一个工作,各自独立工作。当A类需要修改代码时候,修改期间,不影响到其他类的正常工作。

优点:降低耦合度,提高代码复用,提高代码可读性,提高系统的可维护性。

 

里氏代换原则(LSP):

里氏代换原则,子类型必须能够替换掉它们的父类型。

正是里氏代换原则中子类型对于父类型的可替换性,才使得使用父类类型的模块在无需改动的情况下,就可以通过使用不同的子类得到扩展。里氏代换原则是对实现抽象化的具体步骤的规范。

 

开放-封闭原则:

开放-封闭原则是面向对象开发中所有设计原则的核心。

开放-封闭原则:程序的实体对象(模块、类、函数等)应该可以进行扩展,但不应该可以修改。

开放-封闭原则特征:对于扩展是开放的,对于修改是封闭的。

让类去依赖于固定的抽象,所以对于修改来说就是封闭的;而通过面向对象的继承以及多态机制,可以去实现对抽象体的继承,而通过重写其方法来改变固有行为,从而实现新的扩展方法,所以对于来说扩展就是开放的。

 

依赖倒转原则:

依赖倒转原则,程序的高层模块不应该依赖于底层模块,但两者都应该依赖于抽象,抽象不应该依赖于具体细节,而细节应该依赖于抽象(面向对象应该针对接口编程,而不是针对实现编程)

依赖倒转原则的本质就是通过抽象(接口或者抽象类)使各个类或模块的实现彼此独立,不互相影响,从而实现模块间的松散耦合。

依赖倒转原则需要遵循的规范:

-- 每个类尽量都继承自接口或抽象类,或者抽象类和接口两者具备。

-- 变量的显示类型尽量是接口或者抽象类。

-- 类要尽量避免从具体类派生。

-- 尽量不要覆盖基类的方法。

 

合成/聚合复用原则:

合成/聚合复用原则,尽量不适用类继承,而尽量使用合成/聚合。

聚合表示比较“弱”的拥有关系,具体表现是甲对象中可以包括乙对象,但乙对象不是甲对象的一部分。

合成则是一种比较“强”的拥有关系,体现的是严格的整体与部分的关系,并且整体与部分有相同的生命周期。

 

合成/聚合复用原则优点:

-- 新的对象存取子对象的唯一方法是通过子对象的接口。

-- 这种复用是黑箱的复用

-- 这种复用更好的支持封装的特性

-- 这种复用互相依赖性比较小

-- 每一个新的类都可以将焦点集中在一个任务之上。

-- 这种复用可以在运行时动态地进行,新的对象可以动态地引用于子对象类型相同的对象。

合成/聚合复用原则缺点:

-- 系统中会有较多的对象需要管理。

 

迪米特法则:

迪米特法则也被称作为最少知识原则,就是说一个对象应当尽可能少地了解其他对象。

迪米特法则,如果两个类之间不必直接通信,则这两个类不应该发生直接的相互作用,如果其中的一个类需要调用另外一个类的某个方法,可以通过第三方来转发这个调用。

迪米特法则可以降低代码耦合度。

 

 

0 0
原创粉丝点击