一 设计模式分类
创建型模式:
简单工厂模式(Simple Factory)
工厂方法模式(Factory Method)
抽象工厂模式(Abstract Factory)
建造者模式(Builder)
原型模式(Prototype)
单例模式(Singleton)
结构型模式:
适配器模式(Adapter)
桥接模式(Bridge)
组合模式(Composite)
装饰模式(Decorator)
外观模式(Facade)
享元模式(Flyweight)
代理模式(Proxy)
行为型模式:
职责链模式(Chain of Responsibility)
命令模式(Command)
解释器模式(Interpreter)
迭代器模式(Iterator)
中介者模式(Mediator)
备忘录模式(Memento)
观察者模式(Observer)
状态模式(State)
策略模式(Strategy)
模板方法模式(Template Method)
访问者模式(Visitor)
二 简单的概括。
简单工厂模式(Simple Factory)=>即传入不同的初始化类型标志,用于创建不同的类。工厂决定所有的创建。
工厂方法模式(Factory Method) =>只定义工厂,子类决定创建。
抽象工厂模式(Abstract Factory)=>有多个产品族(电视 冰箱 空调) 多个品牌(海尔 海信 tcl)。横向扩展简单,纵向扩展复杂。
建造者模式(Builder)=>分部分创建,如游戏的的装备创建,头盔 上衣 下衣 鞋子 首饰。首先部件是固定的
原型模式(Prototype)=>即copy技术,复制对象的一些属性。
单例模式(Singleton) =>表示世界上只有一个的对象。如上帝,如内存管理器
适配器模式(Adapter) => 兼容新旧接口,使用上一致。如英式电源口转中式电源口的接口。
桥接模式(Bridge)=>强调实现和抽象都可能变化,平台的改变。如不同操作系统下,实现文件读写操作。 策略模式 的结构是包容在 桥接模式 结构中的。
组合模式(Composite) => 即维护一个对象数组,可以增加、删除对象,维护此数组。有树状结构,使得客户端对单个对象和组合对象的使用具有一致性。
装饰模式(Decorator) =》
外观模式(Facade) => 将多个子系统的操作,统一整合为相同的接口暴露出来。
享元模式(Flyweight)
代理模式(Proxy) =>
职责链模式(Chain of Responsibility)
命令模式(Command) => 定义命令字和参数,传递给一个命令处理者。命令处理者统一处理这些命令。如
解释器模式(Interpreter) =>
迭代器模式(Iterator) =>即foreach,逐个访问集合的元素。
中介者模式(Mediator)
备忘录模式(Memento)
观察者模式(Observer)
状态模式(State) =>如游戏状态机,攻击 被攻击 死亡 行走 站立不动。各状态间有直接 间接转换。
策略模式(Strategy) =>强调算法的更换性。
模板方法模式(Template Method)
创建型模式:
简单工厂模式(Simple Factory)
工厂方法模式(Factory Method)
抽象工厂模式(Abstract Factory)
建造者模式(Builder)
原型模式(Prototype)
单例模式(Singleton)
结构型模式:
适配器模式(Adapter)
桥接模式(Bridge)
组合模式(Composite)
装饰模式(Decorator)
外观模式(Facade)
享元模式(Flyweight)
代理模式(Proxy)
行为型模式:
职责链模式(Chain of Responsibility)
命令模式(Command)
解释器模式(Interpreter)
迭代器模式(Iterator)
中介者模式(Mediator)
备忘录模式(Memento)
观察者模式(Observer)
状态模式(State)
策略模式(Strategy)
模板方法模式(Template Method)
访问者模式(Visitor)
二 简单的概括。
简单工厂模式(Simple Factory)=>即传入不同的初始化类型标志,用于创建不同的类。工厂决定所有的创建。
工厂方法模式(Factory Method) =>只定义工厂,子类决定创建。
抽象工厂模式(Abstract Factory)=>有多个产品族(电视 冰箱 空调) 多个品牌(海尔 海信 tcl)。横向扩展简单,纵向扩展复杂。
建造者模式(Builder)=>分部分创建,如游戏的的装备创建,头盔 上衣 下衣 鞋子 首饰。首先部件是固定的
原型模式(Prototype)=>即copy技术,复制对象的一些属性。
单例模式(Singleton) =>表示世界上只有一个的对象。如上帝,如内存管理器
适配器模式(Adapter) => 兼容新旧接口,使用上一致。如英式电源口转中式电源口的接口。
桥接模式(Bridge)=>强调实现和抽象都可能变化,平台的改变。如不同操作系统下,实现文件读写操作。 策略模式 的结构是包容在 桥接模式 结构中的。
组合模式(Composite) => 即维护一个对象数组,可以增加、删除对象,维护此数组。有树状结构,使得客户端对单个对象和组合对象的使用具有一致性。
装饰模式(Decorator) =》
外观模式(Facade) => 将多个子系统的操作,统一整合为相同的接口暴露出来。
享元模式(Flyweight)
代理模式(Proxy) =>
职责链模式(Chain of Responsibility)
命令模式(Command) => 定义命令字和参数,传递给一个命令处理者。命令处理者统一处理这些命令。如
解释器模式(Interpreter) =>
迭代器模式(Iterator) =>即foreach,逐个访问集合的元素。
中介者模式(Mediator)
备忘录模式(Memento)
观察者模式(Observer)
状态模式(State) =>如游戏状态机,攻击 被攻击 死亡 行走 站立不动。各状态间有直接 间接转换。
策略模式(Strategy) =>强调算法的更换性。
模板方法模式(Template Method)
访问者模式(Visitor)
对象间的关系
1 对象作为成员
2 根据标识,生成不同的对象
3 对象的交互,只是对接口传参有关联