随笔分类 -  设计模式

摘要:基本介绍 1.用于从客户端向服务器一次性传递带有多个属性的数据 2.角色 (1)Business Object:业务对象,通常从数据库读取数据,为 Transfer Object 填充数据的业务服务,并把它发送到 Client 或按值传递它 (2)Transfer Object:传输对象,普通 Ja 阅读全文
posted @ 2022-03-16 17:21 半条咸鱼 编辑
摘要:基本介绍 1.考虑到为某个服务查找 JNDI 的代价很高,服务定位器模式充分利用了缓存技术,在首次请求某个服务时,服务定位器在 JNDI 中查找服务,并缓存该服务对象,当再次请求相同的服务时,服务定位器会在它的缓存中查找,这样可以在很大程度上提高应用程序的性能 2.角色 (1)Service:实际处 阅读全文
posted @ 2022-03-16 15:50 半条咸鱼 编辑
摘要:基本介绍 1.用于对应用程序的请求或响应做一些预处理 / 后处理,定义过滤器,并在把请求传给实际目标应用程序之前,应用在请求上,过滤器可以做认证 / 授权 / 记录日志,或者跟踪请求,然后把请求传给相应的处理程序 2.角色 (1)Filter:过滤器,在请求处理程序执行请求之前或之后,执行某些任务 阅读全文
posted @ 2022-03-16 14:56 半条咸鱼 编辑
摘要:基本介绍 1.提供一个集中的请求处理机制,所有的请求都将由一个单一的处理程序处理,该处理程序可以做认证 / 授权 / 记录日志,或者跟踪请求,然后把请求传给相应的处理程序 2.角色 (1)Front Controller:前端控制器,聚合 Dispatcher,处理应用程序所有类型请求的单个处理程序 阅读全文
posted @ 2022-03-16 11:40 半条咸鱼 编辑
摘要:基本介绍 1.DAO(Data Access Object)模式用于把低级的数据访问 API 或操作从高级的业务服务中分离出来 2.角色 (1)Data Access Object Interface:数据访问对象接口,该接口定义了在一个模型对象上要执行的标准操作 (2)Data Access Ob 阅读全文
posted @ 2022-03-16 11:08 半条咸鱼 编辑
摘要:基本介绍 1.对表示层和业务层解耦,用来减少通信或对表示层代码中的业务层代码的远程查询功能 2.角色 (1)Client:客户端的表示层代码可以是 JSP、servlet 或 UI java 代码 (2)Business Delegate:业务代表,一个为 Client 提供的入口类,提供了对业务服 阅读全文
posted @ 2022-03-15 23:31 半条咸鱼 编辑
摘要:基本介绍 1.Model - View - Controller(模型 - 视图 - 控制器)模式 2.应用场景:程序的分层开发 3.角色 (1)Model:模型,代表一个存取数据的对象或普通 JavaBeans,它也可以带有逻辑,在数据变化时更新 Controller (2)View:视图,代表 阅读全文
posted @ 2022-03-15 22:34 半条咸鱼 编辑
摘要:基本介绍 1.创建一个指定各种要执行的操作的抽象类和扩展该类的实体类,还创建一个未对该类做任何实现的空对象类,该空对象类将无缝地使用在需要检查空值的地方 2.一个空对象取代 null 对象实例的检查,null 对象不是检查空值,而是反应一个不做任何动作的关系,这样的 null 对象也可以在数据不可用 阅读全文
posted @ 2022-03-15 22:19 半条咸鱼 编辑
摘要:基本介绍 1.允许开发人员使用不同的标准来过滤一组对象,通过逻辑运算以解耦的方式把它们连接起来,它结合多个标准来获得单一标准 代码示例 import java.util.LinkedList; import java.util.List; public class Filter {//客户端 pub 阅读全文
posted @ 2022-03-15 21:53 半条咸鱼 编辑
摘要:基本介绍 1.一个抽象类公开定义了执行它的方法的方式/模板,它的子类可以按需要重写方法实现,但调用将以抽象类中定义的方式进行 2.通常每个接收者都包含对另一个接收者的引用,如果一个对象不能处理该请求,那么它会把相同的请求传给下一个接收者,依此类推 角色 1.Handler:抽象处理者,定义了一个处理 阅读全文
posted @ 2022-03-15 15:25 半条咸鱼 编辑
摘要:基本介绍 1.策略模式中,定义算法族,分别封装起来,让他们之间可以互相替换,此模式让算法的变化独立于使用算法的客户 2.一个类的行为或其算法可以在运行时更改,创建表示各种策略的对象和一个行为随着策略对象改变而改变的 Context 对象,策略对象改变 Context 对象的执行算法 角色 1.Con 阅读全文
posted @ 2022-03-15 12:24 半条咸鱼 编辑
摘要:基本介绍 1.主要解决对象在多种状态转换时,需要对外输出不同的行为的问题 2.状态之间可以相互转换,当一个对象的内在状态改变时,允许改变其行为,行为可能引起状态的改变 3.状态和行为是一一对应的,同一个行为,在不同状态下,有不同的实现 角色 1.Context:环境角色,维护一个 ConcreteS 阅读全文
posted @ 2022-03-14 23:49 半条咸鱼 编辑
摘要:基本介绍 1.解释器模式:指给定一个语言(表达式),定义它的文法的一种表示,并定义一个解释器,使用该解释器来解释语言中的句子(表达式) 2.在编译原理中,一个算术表达式通过词法分析器形成词法单元,而后这些词法单元再通过语法分析器构建语法分析树,最终形成一颗抽象的语法分析树,这里的词法分析器和语法分析 阅读全文
posted @ 2022-03-14 22:35 半条咸鱼 编辑
摘要:基本介绍 1.备忘录模式:在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,以后就可将该对象恢复到原先保存的状态 2.备忘录对象主要用来记录一个对象的某种状态,或者某些数据,当要做回退时,可以从备忘录对象里获取原来的数据进行恢复操作 角色 1.Originator:源对象, 阅读全文
posted @ 2022-03-13 22:11 半条咸鱼 编辑
摘要:基本介绍 1.一个中介对象来封装一系列的对象交互,中介者使各个对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互 2.代码易于维护 3.应用场景:如 MVC 模式,C(Controller控制器)是M(Model模型)和V(View视图)的中介者,在前后端交互时起到了中间人 阅读全文
posted @ 2022-03-13 21:13 半条咸鱼 编辑
摘要:基本介绍 1、对象之间多对一依赖的一种设计方案,被依赖对象为 Subject,依赖对象为 Observer,Subject 通知 Observer 变化 角色 1.Subject:主体接口,管理 ConcreteSubject,依赖 Observer (1)registerObserver:登记注册 阅读全文
posted @ 2022-03-13 14:30 半条咸鱼 编辑
摘要:基本介绍 1.提供一种遍历集合元素的统一接口,用一致的方法遍历集合元素,不需要知道集合对象的底层表示,即:不暴露其内部的结构 2.如果集合元素是用不同的方式实现的,当客户端要遍历这些集合元素的时,就要使用多种遍历方式,而且还会暴露元素的内部结构 角色 1.Iterator:迭代器接口,由JDK提供, 阅读全文
posted @ 2022-03-13 00:26 半条咸鱼 编辑
摘要:基本介绍 1.定义:把对数据的操作都封装到访问者类中,无需改变结构类,调用不同的访问者访问这个对象都会呈现出不同的处理方式 2.目的:解决类结构不变但操作处理逻辑易变的问题 3.原理:在被访问的类里面加一个对外提供接待访问者的接口 角色 1.Visitor:抽象访问者,接口 / 抽象类,为每个 Co 阅读全文
posted @ 2022-03-12 20:53 半条咸鱼 编辑
摘要:基本介绍 1.将 Invoker 与 Receiver 解耦,Invoker 只要调用 ConcreteCommand 对象的 execute 方法让接收者执行请求的动作,ConcreteCommand 对象起到了纽带桥梁的作用,即解耦是通过命令对象实现的 2.将一个请求封装为一个对象,以便使用不同 阅读全文
posted @ 2022-03-12 01:21 半条咸鱼 编辑
摘要:基本介绍 1.在一个抽象类公开定义了执行它的方法的模板,子类重写抽象方法,调用将以抽象类中定义的方式进行 2.作用:将一些步骤延迟到子类中,使得子类可以不改变一个算法的结构,就可以重定义该算法的某些特定步骤 角色 1.AbstractClass:抽象类 / 接口,定义了算法的骨架 2.Concret 阅读全文
posted @ 2022-03-11 20:38 半条咸鱼 编辑

点击右上角即可分享
微信分享提示