设计模式java

  1. 简单工厂:
    可以用于商城订单同时处理多个优惠策略(满n减m,打折,返现抵扣)
    设计CashFactory,内部实例化多个CashSuper的子类(Cashreturn,CashNormal…),利用java的多态性实现分别负责多个优惠策略

  2. 策略模式
    进一步封装简单工厂,客户端只知道CashContext类以及getResult方法获取结果,不直接在客户端中使用CashFactory

  3. 备忘录模式
    让一个类专门用来保存另一个类的内部状态

  4. 代理模式
    控制对一个类的引用,隐藏或增加一些前,后处理

  5. 单例模式
    如果没有对象,新建,如果有返回已经有的
    任务管理器只能开一个,开的都是同一个(频繁创建)(复杂类)

  6. 迭代器模式
    对于一个类似map/list的聚合对象,创建一个迭代器来控制对聚合对象的遍历(获取first,和获取next,获取hasNext…)
    不用暴露聚和类的内部表达

  7. 责任链模式
    将处理者组成一个链式结构,允许节点自身判断是否可以处理
    解耦请求处理者和发送者,现在发送者只需要发给链就可以了
    可扩展性,给对象指派职责很方便

  8. 访问者模式
    和迭代器类似,有访问者类,和被访问的类。比如让访问者遍历被访问者内部所有元素

  9. 观察者模式
    和MQ消费者类似,抽象目标内部包含观察者集合,和一个方法用于通知观察者。具体目标内部循环告知观察者。(发布-订阅模型)()

  10. 解释器模式
    句子 -> 主语 -> 代词- > 我
    可用通过继承来表达文法

  11. 命令模式
    解耦方法的请求者和接收者。抽象命令类,内部有执行命令的方法,具体命令类实现抽象命令类,内部调用接受者去执行命令。调用者调用抽象命令类。
    请求者和接收通过命令对象沟通,扩展性好

  12. 模板方法模式
    父类中包含了通用的方法变量,子类实现具体的各自的逻辑。
    代码复用,子类可扩展性

  13. 桥接模式
    可用做到new Circle(new RedColor()),使得抽象部分和实现部分独立变化:当一个类存在多个独立变化的维度,并且需要独立扩展时可用

  14. 适配器模式
    将适配者的接口转换为目标接口,class ObjectAdapter implements Target
    然后adapter.targetMethod

  15. 外观模式
    创建一个新的类,包含多个子系统类,和一个method内部包含多个子系统的功能
    降低了子系统和客户端的耦合
    屏蔽了客户端对子系统的了解

  16. 享元模式
    对于有公共键值的类似的类(所享的元),创建一个享元工厂,内部包含一个哈希map,用于以享元为键,客户端用的时候,直接向工厂类穿键新建对象。
    降低耦合

  17. 组合模式
    根节点,叶子对象,组合对象
    Component(组件接口):定义了叶子和组合对象的共同接口。
    Leaf(叶子对象):叶子对象是组合中的基本构件,它没有子对象。叶子对象实现了组件接口。
    Composite(组合对象):组合对象,通常会有一个集合用于存储子对象,并且实现了组件接口。它定义了子对象的添加、删除以及一些业务方法。

  18. 装饰模式
    用于为现有功能增加新功

  19. 原型模式
    克隆现成的对象

  • 5
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值