博客园不常在线

有问题联系微信

微信号

微信公众号

摘要: 简介 中介者模式是一种行为型设计模式,它定义了一个中介对象,用于简化对象之间的交互。中介者模式通过引入一个中介对象来解耦多个对象之间的交互,使得这些对象可以独立地改变和复用。 中介者模式的适用场景包括多个对象之间存在复杂的引用关系,导致系统的结构变得很复杂;当一个对象发生改变时,需要跟踪与之相关联的 阅读全文
posted @ 2020-01-03 23:24 Code技术分享 阅读(99) 评论(0) 推荐(0) 编辑
摘要: 简介 迭代器模式是一种行为型设计模式,用于顺序访问集合对象的元素,而无需知道该集合对象的底层表示。这种模式意图是提供一种方法来顺序访问一个聚合对象的各个元素,同时不需要暴露该对象的内部表示。 在迭代器模式中,有一个迭代器接口,定义了需要实现的方法,如hasNext()和next()。实现这个接口的具 阅读全文
posted @ 2020-01-03 23:22 Code技术分享 阅读(208) 评论(0) 推荐(0) 编辑
摘要: 简介 命令模式是一种行为型设计模式,它允许将请求或操作封装为一个对象,以便使用不同的请求或参数来调用相同的操作,同时实现撤销和重做的功能。 命令模式的核心思想是将请求发送者和请求接收者解耦,使得请求发送者不需要知道接收者的具体实现细节,只需要通过一个命令对象来发送请求即可。命令模式定义了一个命令接口 阅读全文
posted @ 2020-01-03 23:21 Code技术分享 阅读(117) 评论(0) 推荐(0) 编辑
摘要: 简介 责任链模式是一种行为型设计模式,它允许你将请求沿着处理者链进行发送。每个处理者都可以对请求进行处理,或者将其传递给链上的下一个处理者。责任链模式主要应用于面向对象编程中,特别是当系统中的对象需要根据其属性来决定如何处理请求时。 在责任链模式中,通常会有多个对象(处理者)连接在一起形成一个链。当 阅读全文
posted @ 2020-01-03 23:20 Code技术分享 阅读(104) 评论(0) 推荐(0) 编辑
摘要: 简介 模板方法模式是一种行为型设计模式,它定义一个操作中的算法骨架,将一些步骤推迟到子类中。模板方法模式使得子类可以不改变一个算法的结构,即可重定义该算法的某些特定步骤。 在模板方法模式中,抽象类中定义了一系列基本操作,这些操作是具体的也可以是抽象的,每一个基本操作对应算法的一个步骤。在子类中可以重 阅读全文
posted @ 2020-01-03 23:18 Code技术分享 阅读(157) 评论(0) 推荐(0) 编辑
摘要: 简介 解释器模式是一种行为型设计模式,它提供了一种构建抽象语法树的机制,并定义了如何解释这棵树。解释器模式属于编译原理中的语法制导翻译的范畴。 如上图,设计一个软件用来进行加减计算。我们第一想法就是使用工具类,提供对应的加法和减法的工具方法。 //用于两个整数相加 public static int 阅读全文
posted @ 2020-01-03 23:17 Code技术分享 阅读(142) 评论(0) 推荐(0) 编辑
摘要: 简介 代理模式(Proxy Pattern)是一种行为型设计模式,它为其他对象提供一种代理以控制对这个对象的访问。通过使用代理,可以在客户端和目标对象之间起到中介的作用,这样既可以扩展目标对象的功能,又可以保护目标对象。 代理模式有不同的形式,主要有三种: 静态代理 动态代理:JDK 代理、接口代理 阅读全文
posted @ 2020-01-03 23:15 Code技术分享 阅读(106) 评论(0) 推荐(0) 编辑
摘要: 简介 享元模式(Flyweight Pattern)是一种软件设计模式,用于减少内存使用和提高性能。它通过共享细粒度对象来减少创建和销毁对象时所需的内存。享元模式适用于大量相似对象的场景,这些对象可以共享相同的状态和行为。 享元模式的核心思想是将对象分为内部状态和外部状态。内部状态是对象自身的状态, 阅读全文
posted @ 2020-01-03 23:14 Code技术分享 阅读(197) 评论(0) 推荐(0) 编辑
摘要: 简介 外观模式(Facade Pattern)是一种设计模式,又名门面模式,是一种通过为多个复杂的子系统提供一个一致的接口,而使这些子系统更加容易被访问的模式。该模式对外有一个统一接口,外部应用程序不用关心内部子系统的具体的细节,这样会大大降低应用程序的复杂度,提高了程序的可维护性。 外观模式的关键 阅读全文
posted @ 2020-01-03 23:12 Code技术分享 阅读(72) 评论(0) 推荐(0) 编辑
摘要: 简介 装饰器模式(Decorator Pattern)是一种结构型设计模式,允许您在不改变现有对象结构的情况下,动态地将新功能附加到对象上。通过创建一个包装器类来扩展原始类的功能。这个包装器类具有与原始类相同的接口,并在内部持有一个指向原始对象的引用。通过将多个装饰器链接在一起,可以递归地添加任意数 阅读全文
posted @ 2020-01-03 23:11 Code技术分享 阅读(86) 评论(0) 推荐(0) 编辑