摘要: 当类的行为是基于它的状态改变时,使用状态模式。比如红绿灯控制路口司机的行为。 应用: 用来解决系统中复杂对象的状态转换,以及不同状态下的行为封装问题。 结构: State抽象类。 State实现类:封装了一个状态对应的行为。 上下文类:它持有一个State对象,定义了当前的状态。 例子: 酒店有空闲 阅读全文
posted @ 2022-11-26 22:44 在博客做笔记的路人甲 阅读(176) 评论(0) 推荐(0) 编辑
摘要: 做一件事情,流程是固定的,其中存在不确定的同一类事务。 例如: 去店里吃饭:1、进入店铺。2、点单。3、吃饭。 不确定的是第二步:点单。 实现: 在父类中定义好统一的处理步骤(为不可重写的方法 final ),由子类实现不同的步骤后,调用统一的处理步骤。一般可以使用匿名内部类简化。 比如我从睡醒到出 阅读全文
posted @ 2022-11-26 20:03 在博客做笔记的路人甲 阅读(90) 评论(0) 推荐(0) 编辑
摘要: 当处理同一个对象有多个处理算法的时候,使用一个策略对象来选择处理算法。 例子: 对于客户的优惠率。 算法实现统一的接口: public interface Strategy { public double getPrice(double standarPrice);//获取计算价格的算法 } 具体算 阅读全文
posted @ 2022-11-26 19:31 在博客做笔记的路人甲 阅读(217) 评论(0) 推荐(0) 编辑
摘要: 表示一个作用于某对象结构中的各个元素的操作,使我们在不改变元素的类的前提下定义作用于这些元素的新操作。 使用场景: 对象结构比较稳定,但经常需要在此对象结构上定义新的操作。 需要对一个对象结构中的对象进行很多不同的并且不相关的操作,而需要避免这些操作“污染”这些对象的类,也不希望在增加新操作时修改这 阅读全文
posted @ 2022-11-26 19:00 在博客做笔记的路人甲 阅读(201) 评论(0) 推荐(0) 编辑
摘要: 自定义解析器。 需要:构建语法树,定义终结符与非终结符。 例子:Jsp代码,底层编译为Servlet类。 替代方案:Java中使用脚本引擎运行脚本语言 阅读全文
posted @ 2022-11-26 18:58 在博客做笔记的路人甲 阅读(106) 评论(0) 推荐(0) 编辑
摘要: 将一个请求封装为一个对象,使发出请求的责任和执行请求的责任分割开。 这样两者之间通过命令对象进行沟通,这样方便将命令对象进行储存、传递、调用、增加与管理。 结构: Clinet 客户端:下发命令的类,持有Command 命令类。 大哥说:我渴了。 Command 命令类:管理命令的类,持有Recei 阅读全文
posted @ 2022-11-26 17:50 在博客做笔记的路人甲 阅读(267) 评论(0) 推荐(0) 编辑
摘要: 用来降低多个对象和类之间的通信复杂性。这种模式提供了一个中介类,该类通常处理不同类之间的通信,并支持松耦合,使代码易于维护。 场景: 公司多个部门之间,若直接互相打交道,则会形成网状结构,及其复杂,通过经理(中介者)来进行通信则会大大提供效率。 实现思路: 多个对象持有中介者的引用,中介者中持有多个 阅读全文
posted @ 2022-11-26 12:20 在博客做笔记的路人甲 阅读(135) 评论(0) 推荐(0) 编辑
摘要: 用来遍历集合的工具。 实现方式: 使用一个游标记录当前读取位置。 容器中使用迭代器: 一般迭代器都有的方法,整个接口: public interface MyInterator { void first();//将游标指向第一个元素 Object next();//获取此元素并且将游标指向下一个元素 阅读全文
posted @ 2022-11-26 11:08 在博客做笔记的路人甲 阅读(34) 评论(0) 推荐(0) 编辑