设计模式学习笔记(编写中)

如何定义一个设计模式

1. 应该何时使用这个模式

2. 模式由哪几部分组成

3. 应用的效果及使用模式应权衡的问题

 

设计模式分类:

目的为创建类

目的为创建对象

目的为结构型类

目的为结构型对象

目的为行为型类

目的为行为型对象

 

 

  

 

创建型模式

需要关注:

1. 什么被创建

2. 谁创建它

3. 如何创建

4. 何时创建

 

1. 抽象工厂Abstract Factory

适用场景举例:一个支持多种形态的产品,为了保证不同形态间的可移植性,一个应用不应该为每个形态进行从无到有的实现(不应该写定所有实现)

实现特征:

抽象工厂作为接口基类,用于创建工厂类

工厂类用于执行创建产品操作

抽象对象作为产品接口积累,用于创建产品类

产品类用于创建具体产品对象

2. 生成器Builder

适用场景举例:TextConvert支持多种文本格式之间的转换,针对转为富文本RTF格式场景,RTFReader调用TextConvert中的具体操作接口,执行具体的转换操作

实现特征:

builder为产品指定的抽象接口,创建具体builder

具体builder用于创建产品

director用于调用builder中的抽象接口

意义:调用者可以复用director,用builder的子类给director传参即可

3. 工厂方法Factory Method

适用场景举例:产品A有多种形态,创建产品A的时候,基于基类根据参数进行多态管理

实现特征:

product定义创建对象的接口

ConcreteProduct实现所有product接口

creator返回product对象

ConcreteCreator重构creator对product的管理函数

4.原型prototype

适用场景举例:乐谱编辑器中,使用Graphic类生成音符和五线谱,tool类用于生成处理音符和五线谱的工具

实现特征:

prototype包含一个clone自身的接口

ConcretePrototype实现clone操作

5. 单例singleton

 

posted @ 2021-02-04 20:52  玉北  阅读(40)  评论(0编辑  收藏  举报