前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Java 设计模式总结

Java 设计模式总结

作者头像
sickworm
发布2019-05-22 15:27:28
5910
发布2019-05-22 15:27:28
举报
文章被收录于专栏:sickworm

创建类模式

1. 单例模式

特点:全局唯一,所有类共享一个实例化对象

使用场景:一个类独占一个唯一资源时考虑使用。如蓝牙等 IO 类,或者根,管理器等虚拟类。其他情况应慎重使用。

2. 工厂模式

特点:用户无需知道实例构造方法,方便用户实例化

使用场景:直接实例化一个对象较为复杂(需要多步)时;一个对象(接口)对应多种实现,而用户无需关注具体实现类是哪个时。

3. 抽象工厂模式

特点: 工厂的工厂

使用场景:存在多个平行的工厂模式实现类时。

4. 建造者模式

特点: 一个 Builder 类对应一个类,通过链式调用不断添加参数,在最后调用 build() 实例化对应类。

使用场景:创建一个对象比较复杂,且某些设置可选时。

5. 原型模式

特点:输入一个实例(称为原型),返回一个实例的复制。

使用场景:克隆一个对象,或创建一个模拟这个对象的行为的对象。

行为类模式

6. 模板方法模式

特点:即 Java 抽象类

使用场景:需要把策略抽象出来,但又与具体实现密切相关时可用。抽象类其实不是必须的,可以用组合代替(把策略抽取为一个单独的类)。

7. 中介者模式

特点:俗话说的:封一层。用于精简接口和类之间的操作。

使用场景:某个流程较为复杂,涉及多个类的交互。

8. 观察者模式

特点:观察类设置监听器给被观察类,在观察类发生了监听器想监听的事件时,被观察类主动调用观察类的监听器。

使用场景:凡是需要关注事件的,都可以使用。

9. 访问者模式

特点: 将被访问类对象传入到访问类,访问类调用这个对象

使用场景:一个对象中存在着一些与本对象不相干(或者关系较弱)的操作,为了避免这些操作污染这个对象,则可以使用访问者模式来把这些操作封装到访问者中去。

10. 命令模式

特点: 发送者对象发送请求对象,接收者对象返回结果。请求对象内含实现方法(Runnable 算得上是一种命令模式?)。调用,接收和实现分散 在 3 个类中。

使用场景:一个请求一个响应的模式比较适合命令模式。

11. 责任链模式

特点:事件(请求)处理类(Handler)对象连成一条链,链的顺序表示优先级。事件到达时按优先级流水线处理。

使用场景:一个请求可能被多个不同的对象接收,但存在接收优先级时。如多层 UI 布局的点击事件。

12. 策略模式

特点:一个算法接口或类,被多个子类实现/继承。各个子类可以根据需求互相替换。即:多种算法,处理一种数据。

使用场景:多个子类继承于同一个父类/接口,基本就算策略模式。

13. 解释器模式

特点:解析特定格式数据,并执行数据所代表的操作。通常使用状态机实现。

使用场景:需要创造并解析自定义数据格式时。

14. 备忘录模式

特点:每一步都被记录,操作可还原。常见实现有 log 记录,merkle 树。

使用场景:当操作有回滚的需求时。

版权所有,转载请注明出处:

https://cloud.tencent.com/developer/article/1430379

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019年4月5日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 创建类模式
    • 1. 单例模式
      • 2. 工厂模式
        • 3. 抽象工厂模式
          • 4. 建造者模式
            • 5. 原型模式
            • 行为类模式
              • 6. 模板方法模式
                • 7. 中介者模式
                  • 8. 观察者模式
                    • 9. 访问者模式
                      • 10. 命令模式
                        • 11. 责任链模式
                          • 12. 策略模式
                            • 13. 解释器模式
                              • 14. 备忘录模式
                              领券
                              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档