1. 设计模式开篇
一.设计模式
1.设计模式介绍
-
软件工程中, 设计模式(design pattern)是对软件设计中普遍存在(反复出现)的各种问题,所提出的解决方案。
2.设计模式的目的
-
可读性 (即:编程规范性, 便于其他程序员的阅读和理解)
-
可扩展性 (即:当需要增加新的功能时,非常的方便,称为可维护)
-
可靠性 (即:当我们增加新的功能后,对原来的功能没有影响)
-
重用性 (即:相同功能的代码,不用多次编写)
-
使程序呈现高内聚, 低耦合的特性
3.设计模式七个常用的原则
-
单一职责原则:一个类应该只负责一项职责 (拆分类)
-
接口隔离原则:不要依赖不需要的接口(拆分接口)
-
依赖倒置原则:细节依赖于抽象(面向接口编程)
-
可以通过参数传递、构造方法和setter方法进行依赖传递
-
里氏替换原则:能使用基类的地方都可以使用子类(子类不要重写父类方法)
-
继承增加了类的耦合性 ,我们可以通过聚合,组合或依赖来降低耦合性
-
开闭原则:对扩展开放,对修改关闭(去扩展新的功能,不要去修改原有功能)
-
迪米特法则:最少知道原则(只与直接朋友通信减少耦合 )
-
直接朋友:成员变量,方法参数,方法返回值中的类
-
间接对象:局部变量中的类
-
核心:降低类之间的耦合,每个类都减少了不必要的依赖
-
合成复用原则:使用组合或聚合而不是继承(解耦)
4. 设计原则的核心思想
-
找出应用中可能需要变化之处,把它们独立出来,不要和那些不需要变化的代码混在一起。
-
针对接口编程,而不是针对实现编程。
-
为了交互对象之间的松耦合设计而努力 。
二.UML
1.UML介绍
-
UML:统一建模语言,本身就是一套符号用于软件系统的分析与设计。
2.UML图分类
-
用例图
-
静态结构图:类图、对象图、包图、组件图、部署图
-
动态结构图:交互图(时序图与协作图)、状态图、活动图
3.UML类图
-
类之间的关系:依赖、泛化(继承)、实现、关联、聚合、组合
-
![](https://img2020.cnblogs.com/blog/842724/202003/842724-20200309220732468-858205191.png)
(1)依赖
-
图标:虚线尖箭头
-
概念:类中用到了对方
-
类中使用到
-
类的成员属性
-
方法参数类型
-
方法返回类型
-
方法中使用到
-
使用方在尾部,被用方在头部
(2)泛化
-
图标:实线三角形箭头
-
概念:继承关系
-
使用方在尾部,被用方在头部
(3)实现
-
图标:虚线三角形箭头
-
概念:接口实现关系
-
使用方在尾部,被用方在头部
(4)关联
-
图标:实线
-
概念:类的成员属性用到另一个类(依赖的特例)
(5)聚合
-
图标:空心菱形实线
-
概念:类的成员属性用到另一个类但是没有初始化(关联的特例)
-
使用方在菱形处,被用方在直线处
(6)组合
-
图标:实心菱形实线
-
概念:类的成员属性用到另一个类并且初始化了(关联的特例)
-
使用方在菱形处,被用方在直线处
三.设计模式类型
-
经典的设计模式分为三种类型,共23种。
-
还有一些额外的设计模式
1.创建型模式
-
单例模式、抽象工厂模式、原型模式、建造者模式、工厂模式
2.结构型模式
-
适配器模式、桥接模式、装饰模式、组合模式、外观模式、享元模式、代理模式
3.行为型模式:
-
模版方法模式、命令模式、访问者模式、迭代器模式、观察者模式、中介者模式、备忘录模式、解析器模式(Interpreter模式)、状态模式、策略模式、责任链模式
原文地址:https://www.cnblogs.com/zhihaospace/p/12452112.html