设计模式六大原则
来源:互联网 发布:python 多线程 锁 编辑:程序博客网 时间:2024/06/10 04:44
设计模式个人总结与理解
设计模式理解:
设计模式(Design Pattern)是一套面向对象的代码设计经验总结,是在编程领域被反复使用、被多数人知晓。而且经过分类整理的代码设计方法。
合理利用设计模式可以提高代码复用率、让代码更容易被他人理解、保证代码可靠性。
设计模式是一种思想,也是一种技术,也是一种解决方案。
设计模式是针对某种情况的解决方案,何时使用何种设计模式,取决于开发的情况。
设计模式六大设计原则:
单一职责原则:
单一职责原则,每一个类只完成一种类型的功能,每一个类只有一个职责。或者说,对于一个类,应该只有一个引起它变化的原因。例如,一个组装汽车的系统,A类负责组装轮子,B类负责组装车窗,C类负责组装引擎....。每一个类都有他们的一个职责,他们各自负责一个工作,各自独立工作。当A类需要修改代码时候,修改期间,不影响到其他类的正常工作。
优点:降低耦合度,提高代码复用,提高代码可读性,提高系统的可维护性。
里氏代换原则(LSP):
里氏代换原则,子类型必须能够替换掉它们的父类型。
正是里氏代换原则中子类型对于父类型的可替换性,才使得使用父类类型的模块在无需改动的情况下,就可以通过使用不同的子类得到扩展。里氏代换原则是对实现抽象化的具体步骤的规范。
开放-封闭原则:
开放-封闭原则是面向对象开发中所有设计原则的核心。
开放-封闭原则:程序的实体对象(模块、类、函数等)应该可以进行扩展,但不应该可以修改。
开放-封闭原则特征:对于扩展是开放的,对于修改是封闭的。
让类去依赖于固定的抽象,所以对于修改来说就是封闭的;而通过面向对象的继承以及多态机制,可以去实现对抽象体的继承,而通过重写其方法来改变固有行为,从而实现新的扩展方法,所以对于来说扩展就是开放的。
依赖倒转原则:
依赖倒转原则,程序的高层模块不应该依赖于底层模块,但两者都应该依赖于抽象,抽象不应该依赖于具体细节,而细节应该依赖于抽象(面向对象应该针对接口编程,而不是针对实现编程)
依赖倒转原则的本质就是通过抽象(接口或者抽象类)使各个类或模块的实现彼此独立,不互相影响,从而实现模块间的松散耦合。
依赖倒转原则需要遵循的规范:
-- 每个类尽量都继承自接口或抽象类,或者抽象类和接口两者具备。
-- 变量的显示类型尽量是接口或者抽象类。
-- 类要尽量避免从具体类派生。
-- 尽量不要覆盖基类的方法。
合成/聚合复用原则:
合成/聚合复用原则,尽量不适用类继承,而尽量使用合成/聚合。
聚合表示比较“弱”的拥有关系,具体表现是甲对象中可以包括乙对象,但乙对象不是甲对象的一部分。
合成则是一种比较“强”的拥有关系,体现的是严格的整体与部分的关系,并且整体与部分有相同的生命周期。
合成/聚合复用原则优点:
-- 新的对象存取子对象的唯一方法是通过子对象的接口。
-- 这种复用是黑箱的复用
-- 这种复用更好的支持封装的特性
-- 这种复用互相依赖性比较小
-- 每一个新的类都可以将焦点集中在一个任务之上。
-- 这种复用可以在运行时动态地进行,新的对象可以动态地引用于子对象类型相同的对象。
合成/聚合复用原则缺点:
-- 系统中会有较多的对象需要管理。
迪米特法则:
迪米特法则也被称作为最少知识原则,就是说一个对象应当尽可能少地了解其他对象。
迪米特法则,如果两个类之间不必直接通信,则这两个类不应该发生直接的相互作用,如果其中的一个类需要调用另外一个类的某个方法,可以通过第三方来转发这个调用。
迪米特法则可以降低代码耦合度。
- 设计模式六大原则
- 设计模式六大原则
- 设计模式六大原则
- 设计模式六大原则
- 设计模式六大原则
- 设计模式六大原则
- 设计模式六大原则
- 设计模式六大原则
- 设计模式六大原则
- 设计模式六大原则
- 设计模式六大原则
- 设计模式六大原则
- 设计模式六大原则
- 设计模式六大原则
- 设计模式六大原则
- 设计模式六大原则
- 【设计模式】六大原则
- 设计模式六大原则
- ECharts图表的皮肤是什么?如何给图表换主题(皮肤)Theme?
- svg/webvowl 流程图创建
- 银联错失的良机,“网联”来补上
- es6 的箭头函数 =>
- wcf系列学习5天速成——第三天 事务的使用
- 设计模式六大原则
- Hello World
- CSS 的基础知识(创建、语法)
- 在Linux系统下,重启Tomcat使用命令操作的!
- UVa 1586 Molar Mass
- 中国安邦23亿美元,进军日本地产
- wcf系列学习5天速成——第四天 wcf之分布式架构
- 注解@PostConstruct与@PreDestroy讲解及实例
- java设计模式(适配器模式)