迭代器模式 发表于 2022-05-01 更新于 2024-10-16 分类于 设计模式 阅读次数: Valine: 本文字数: 1.7k 阅读时长 ≈ 2 分钟 迭代器模式提供一种统一的方法顺序访问容器对象中各个元素,而又不暴露该对象的内部细节,容器对象指数组、集合等 数据集 核心概念 Iterator 迭代器接口,定义next和hasNext方法 ConcreteIterator 具体的迭代器实现 Collection 容器接口,定义iterator方法来创建Iterator对象 ConcreteCollection 容器实现类,创建具体的迭代器对象ConcreteIterator 阅读全文 »
策略模式 发表于 2022-05-01 更新于 2024-09-30 分类于 设计模式 阅读次数: Valine: 本文字数: 958 阅读时长 ≈ 1 分钟 策略模式定义一组算法,将每个算法封装起来,使它们之间可以互换,此模式让算法可以独立于使用它的用户而变化,用于分离算法,选择实现 多方案切换 核心概念 Strategy 策略接口 ConcreteStrategy 具体的策略实现 Context 上下文,负责和具体的策略类交互 阅读全文 »
中介者模式 发表于 2022-05-01 更新于 2024-09-30 分类于 设计模式 阅读次数: Valine: 本文字数: 2.1k 阅读时长 ≈ 2 分钟 中介者模式用一个中介对象封装一系列的对象交互,中介者使得各个对象不需要显式的相互作用,从而使其解耦合,还可以独立的改变它们之间的交互,这些对象不希望自己处理各种关系,交给中介者来处理 直接引用 核心概念 Mediator 中介者接口,定义各个同事之间交互需要的方法 ConcreteMediator 具体的中介者实现 Colleague 同事类的定义 ConcreteColleague 同事类的实现 阅读全文 »
命令模式 发表于 2022-05-01 更新于 2024-10-16 分类于 设计模式 阅读次数: Valine: 本文字数: 1.1k 阅读时长 ≈ 1 分钟 命令模式将一个请求(方法调用)封装为一个对象,使用不同的请求对客户端进行参数化,对请求排队或记录请求日志,以及支持可撤销的操作 日志记录,可撤销 核心概念 Command 命令接口 ConcreteCommand 命令实现,通常会持有接收者,并调用接收者的功能来完成命令要执行的操作 Receiver 接收者,真正执行命令的对象,实现命令要求的相应功能 Invoker 要求命令对象执行请求,通常会持有命令对象,客户端触发命令的地方 阅读全文 »
原型模式 发表于 2022-05-01 更新于 2024-09-30 分类于 设计模式 阅读次数: Valine: 本文字数: 769 阅读时长 ≈ 1 分钟 原型模式用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象,其有两方面的功能:一是通过克隆来创建新的对象实例;二是为克隆出来的新的对象实例复制实例属性的值 克隆对象 实现 实现Cloneable接口 实现Cloneable接口,该接口没有需要实现的方法,只是一个标识接口,然后在该类中新加一个clone方法来进行克隆 Cloneable接口的作用是在运行时通知虚拟机可以安全地在实现了此接口的类上使用clone方法,只有实现了这个接口的类才可以被拷贝,否则在运行时会抛出CloneNotSupportedException异常 阅读全文 »