设计模式简略总结
首先,设计模式是解决特定问题的一系列套路,目的是为了提高代码的可重用性、代码的可读性和代码的可靠性。
软件设计模式重要组成
- 模式的名称
- 问题:描述了该模式的使用场景和解决了什么问题
- 解决方案:提供问题的抽象描述
- 效果分析:使用时利弊的权衡
分类
- 创建型模式:描述怎么创建对象。
- 结构型模式:怎么将类按照某种布局组成更大的结构
- 行为模式:怎么将类和对象相互协作完成单独对象无法完成的任务
描述设计模式用到的类图
-
类的表示:
[可见性]属性名:类型[=默认值]
[可见性]名称(参数列表)[:返回类型]
;其中+、-、#、~
表示public private protected friendly 四种可见性。 -
接口的表示:带名字的小圆圈
-
类图:类和接口之间的静态关系模型
-
虚线表示相关方法的具体实现
-
类之间的关系(耦合度从弱到强排):
-
依赖关系:带箭头的虚线,从使用类指向被依赖的类
类的方法通过局部变量、方法的参数或者对静态方法的调用来访问另一个类(被依赖类)中的某些方法
-
关联关系:一类对象与另一类对象之间的联系
-
一般关联关系:可以是双向的(带两个箭头或者没有箭头的实线来表示),也可以是单向的(一个箭头的实线来表示),箭头从使用类指向被关联的类
一个类中包含另一个类的对象作为成员变量,上一个依赖是作为方法参数
-
-
聚合关系:整体和部分的关系;带空心菱形的实线来表示,菱形指向整体
也是成员对象的形式,但是成员可以独立存在
-
组合关系:也是整体和部分;实心菱形的实线来表示,菱形指向整体
部分和整体之间相关联,整体消失了,部分就没了
-
泛化关系:一般和特殊的关系,继承关系;空心三角箭头的实线来表示,箭头从子类指向父类
-
实现关系:空心三角箭头的虚线来表示,箭头从实现类指向接口
-
-
常见设计模式
-
单例模式:类只能有一个对象实例
-
原型模式:复制已有的对象到新的对象
抽象原型类:规定了具体原型对象必须实现的接口 具体原型类:实现抽象原型类的 clone() 方法,它是可被复制的对象 访问类:使用具体原型类中的 clone() 方法来复制新的对象。
-
工厂模式:
抽象工厂,具体工厂,抽象产品,具体产品
-
抽象工厂模式:
抽象工厂,具体工厂,抽象产品,具体产品
-
建造者模式:
产品角色,抽象建造者,具体建造者,指挥者
-
代理模式:给某对象提供一个代理以控制对该对象的访问
抽象主题,真实主题,代理类 代理类和真实类实现同一个接口
-
适配器模式:将一个类的接口转换成客户希望的另外一个接口,使得原本由于接口不兼容而不能一起工作的那些类能一起工作
目标接口,适配者,适配器
-
装饰者模式
抽象构件,具体构件,抽象装饰,具体装饰