设计模式

创造型模式

单元生抽工厂

单例模式

原型模式

提供克隆接口, 能够对指定的物体进行克隆生成新物体.

生成器模式

相对于工厂模式一次性获取产品, 生成器模式则是可以一步一步对产品进行组装, 组装完成后获取最终的产品.

抽象工厂模式

系工厂, 有多个产品, 每个产品提供一个接口.

一个工厂可以获得本工厂生产的各种产品. 如日系工厂可以提供各种日式家具, 中系工厂可以提供各种中式家具.

工厂模式

苹果工厂, 提供统一的苹果生产接口.

通过向工厂获取接口传入不同的苹果种类, 获取对应的工厂.

要求红富士返回红富士工厂, 要求糖心苹果返回糖心苹果工厂, 由于都是工厂 所以外部不用关注具体是哪个工厂.

结构型模式

元代适外(室外)装桥组

享元模式

将class中重复很多的字段抽取出来, 在多个类中共享这些重复的字段, 减少内存占用

代理模式

经理设置秘书代理自己, 外部人员需要通过秘书向经理递交材料, 秘书还可能会对材料进行归纳总结.

适配器模式

给不兼容的物体设置包装类, 包装类能够和原本不兼容的对象协作.

外观模式

复杂的系统提供简单的接口.

装饰模式

将一个对象放入封装对象中, 为对象添加新的功能.

桥接模式

通过固定的接口, 将一个整体分离成前台和后台, 前后互不关注具体实现, 只关注接口.

UI界面和操作系统通过一些固定的接口进行交互, UI界面不在乎是什么系统 只要能相应这些接口就行. 操作系统不在乎是什么UI, 只要通过固定的接口向自己发送请求即可.

组合模式

将对象组合成树状结构, 对外一个接口就可能访问到所有叶子.

行为模式

模访状任命中备迭观策(模仿状任命中被爹观测)

模板方法模式

父类中定义算法框架, 子类可以根据需求重写算法特定的步骤.

访问者模式 ?

将算法和所需对象分离开来

迭代器模式

不暴露底层数据结构的情况下, 遍历所有元素

状态模式

将对象需要状态的操作都抽象出来放到状态父类中, 状态子类中根据自身的状态实现这些操作. 对象不需要关心当前的状态, 只需要根据操作调用对应函数即可, 状态的更新由状态子类负责.

责任链模式

将请求沿着处理链进行发送, 每个人都可以处理请求, 或者传递给下个人员.

命令模式

将请求和相关参数包装成独立对象. 对立对象可以将方法参数化 延迟 或者压入队列, 还能实现撤销

中介者模式

禁止众多的对象随意互相耦合, 将请求发送给中介者由中介者进行转发. 例如一个塔台和多个飞机交流, 飞机只需要和一个塔台交流就能得知其他飞机的信息.

备忘录模式

对象需要实现保存状态和恢复状态的函数. 保存状态的函数将当前状态需要保存的数据生成快照. 管理器调用函数生成快照并保存起来, 当恢复状态的时候读取快照, 应用到对象上.

观察者模式

从众多的事件中订阅某个事件, 忽略其他事件.

策略模式

将众多算法放到不同的类中, 是的可以通过简单的操作更换算法.