-
简单工厂:
可以用于商城订单同时处理多个优惠策略(满n减m,打折,返现抵扣)
设计CashFactory,内部实例化多个CashSuper的子类(Cashreturn,CashNormal…),利用java的多态性实现分别负责多个优惠策略 -
策略模式
进一步封装简单工厂,客户端只知道CashContext类以及getResult方法获取结果,不直接在客户端中使用CashFactory -
备忘录模式
让一个类专门用来保存另一个类的内部状态 -
代理模式
控制对一个类的引用,隐藏或增加一些前,后处理 -
单例模式
如果没有对象,新建,如果有返回已经有的
任务管理器只能开一个,开的都是同一个(频繁创建)(复杂类) -
迭代器模式
对于一个类似map/list的聚合对象,创建一个迭代器来控制对聚合对象的遍历(获取first,和获取next,获取hasNext…)
不用暴露聚和类的内部表达 -
责任链模式
将处理者组成一个链式结构,允许节点自身判断是否可以处理
解耦请求处理者和发送者,现在发送者只需要发给链就可以了
可扩展性,给对象指派职责很方便 -
访问者模式
和迭代器类似,有访问者类,和被访问的类。比如让访问者遍历被访问者内部所有元素 -
观察者模式
和MQ消费者类似,抽象目标内部包含观察者集合,和一个方法用于通知观察者。具体目标内部循环告知观察者。(发布-订阅模型)() -
解释器模式
句子 -> 主语 -> 代词- > 我
可用通过继承来表达文法 -
命令模式
解耦方法的请求者和接收者。抽象命令类,内部有执行命令的方法,具体命令类实现抽象命令类,内部调用接受者去执行命令。调用者调用抽象命令类。
请求者和接收通过命令对象沟通,扩展性好 -
模板方法模式
父类中包含了通用的方法变量,子类实现具体的各自的逻辑。
代码复用,子类可扩展性 -
桥接模式
可用做到new Circle(new RedColor()),使得抽象部分和实现部分独立变化:当一个类存在多个独立变化的维度,并且需要独立扩展时可用 -
适配器模式
将适配者的接口转换为目标接口,class ObjectAdapter implements Target
然后adapter.targetMethod -
外观模式
创建一个新的类,包含多个子系统类,和一个method内部包含多个子系统的功能
降低了子系统和客户端的耦合
屏蔽了客户端对子系统的了解 -
享元模式
对于有公共键值的类似的类(所享的元),创建一个享元工厂,内部包含一个哈希map,用于以享元为键,客户端用的时候,直接向工厂类穿键新建对象。
降低耦合 -
组合模式
根节点,叶子对象,组合对象
Component(组件接口):定义了叶子和组合对象的共同接口。
Leaf(叶子对象):叶子对象是组合中的基本构件,它没有子对象。叶子对象实现了组件接口。
Composite(组合对象):组合对象,通常会有一个集合用于存储子对象,并且实现了组件接口。它定义了子对象的添加、删除以及一些业务方法。 -
装饰模式
用于为现有功能增加新功 -
原型模式
克隆现成的对象
设计模式java
最新推荐文章于 2024-07-28 14:31:10 发布