> 设计模式 - Yuyy
Yuyy
Yuyy

设计模式
文章归档

十九、迭代器模式

Iterator Design Partern 作用 遍历容器实现复杂,并且方式有多种,例如遍历二叉树时,有前序、后序、中序遍历。将遍历容器从容器中独立出来,让两者的职责更单一。 容器使用的是迭代器接口,基于接口而非实现编程,替换迭代器更加容易。 示例 public class MyArrayLis…

   61   2021-11-05   去看看

十八、代理模式

Proxy Design Pattern 作用 对原有功能进行增强,注意这里的增强是增加额外的功能,和原有功能无关。 使用场景 业务系统中增加非功能性需求,比如:监控、统计、鉴权、限流、事务、幂等、日志等。 还可以实现接口缓存,通过请求参数决定使用缓存还是实时查询。 实现方…

   69   2021-10-13   去看看

十七、访问者模式

Visitor pattern 因为它难理解、难实现,应用它会导致代码的可读性、可维护性变差,所以,访问者模式在实际的软件开发中很少被用到,在没有特别必要的情况下,建议你不要使用访问者模式。 ——设计模式之美 前言 这个模式侧重代码实现,主要是解决分离业务代码,抽取能…

   98   2021-10-11   去看看

十六、备忘录模式

Memento Design Pattern 定义 在不违背封装原则的情况下,捕获一个对象的内部状态,并在该对象之外保存这个状态,以便以后恢复对象为先前的状态。 应用场景 防丢失、撤销、恢复。可以理解为备份操作,只不过是从代码设计的层面来考虑的。 示例 来自极客时间 输入单词,…

   223   2021-10-08   去看看

十五、状态模式

State Pattern 有限状态机 简称状态机, 由三部分组成:状态、事件、动作。事件触发状态转移,执行动作(非必须)。 状态机实现方式一:分支逻辑法 就是各种if else,switch case。判断不同的状态,遇到不同的事件,执行不同的操作,例如改变状态,执行动作。适用于简…

   68   2021-10-07   去看看

十四、桥接模式

Bridge Design Pattern 两种理解方式 GoF的《设计模式》 桥接模式定义为:让抽象和实现解耦,让他们可以独立变化。这里的实现不是指语法上的实现接口、实现抽象方法,抽象也不是指接口或者抽象类。而是从业务的角度来定义的。例如JDBC定义了数据库访问层的规范,mysql…

   82   2021-09-27   去看看

十三、门面模式

Facade Design Pattern 前言 之前遇到过一个场景,绩效分为标注绩效,质检绩效,不同的公司展示不同的绩效。例如运营公司展示标注绩效,质检绩效;标注公司展示标注绩效;为了保证接口的单一职责,可复用性强,就把接口粒度控制得很小。导致的问题是,接口调用方需要根…

   58   2021-09-26   去看看

十二、命令模式

Command Design Pattern 定义 将命令(函数)封装成对象。 实现方式 Command public interface Command { void excute(); } ReadCommand public class ReadCommand implements Command { @Override public void excute() { System.out.println("…

   57   2021-09-26   去看看

十一、组合模式

Composite Design Patten 定义 使用树形结构来表示业务场景里的数据,业务逻辑通过递归来实现,达到简化代码的目的。 适用场景 很局限,必须能用树形结构来表示。例如人员部门的组织机构,文件系统等。 注意 递归计算时,可以考虑将结果保存起来,不用每次使用时…

   62   2021-09-25   去看看

十、享元模式

Flyweight 定义 共享存储单元,节约内存空间。 使用场景 例如文本编辑器里,每个字符都有字体大小,显示颜色,背景颜色等属性。将这些属性抽取为字体,每个字体的属性在内存中只保留一份即可。感觉和CSS挺像的,不过享元模式侧重点不是代码复用,而是对象复用。 J…

   61   2021-09-25   去看看
加载更多
分类
归档
我的其他站点
友链
标签
近期文章