中介者模式 发表于 2022-05-01 更新于 2024-11-22 分类于 设计模式 阅读次数: 25 Valine: 0 本文字数: 2.1k 阅读时长 ≈ 2 分钟 中介者模式用一个中介对象封装一系列的对象交互,中介者使得各个对象不需要显式的相互作用,从而使其解耦合,还可以独立的改变它们之间的交互,这些对象不希望自己处理各种关系,交给中介者来处理 直接引用 核心概念中介者模式 Mediator 中介者接口,定义各个同事之间交互需要的方法 ConcreteMediator 具体的中介者实现 Colleague 同事类的定义 ConcreteColleague 同事类的实现 阅读全文 »
命令模式 发表于 2022-05-01 更新于 2024-11-22 分类于 设计模式 阅读次数: 33 Valine: 0 本文字数: 1.1k 阅读时长 ≈ 1 分钟 命令模式将一个请求(方法调用)封装为一个对象,使用不同的请求对客户端进行参数化,对请求排队或记录请求日志,以及支持可撤销的操作 日志记录,可撤销 核心概念命令模式 Command 命令接口 ConcreteCommand 命令实现,通常会持有接收者,并调用接收者的功能来完成命令要执行的操作 Receiver 接收者,真正执行命令的对象,实现命令要求的相应功能 Invoker 要求命令对象执行请求,通常会持有命令对象,客户端触发命令的地方 阅读全文 »
原型模式 发表于 2022-05-01 更新于 2024-11-22 分类于 设计模式 阅读次数: 22 Valine: 0 本文字数: 769 阅读时长 ≈ 1 分钟 原型模式用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象,其有两方面的功能:一是通过克隆来创建新的对象实例;二是为克隆出来的新的对象实例复制实例属性的值 克隆对象 原型模式 实现 实现Cloneable接口 实现Cloneable接口,该接口没有需要实现的方法,只是一个标识接口,然后在该类中新加一个clone方法来进行克隆 Cloneable接口的作用是在运行时通知虚拟机可以安全地在实现了此接口的类上使用clone方法,只有实现了这个接口的类才可以被拷贝,否则在运行时会抛出CloneNotSupportedException异常 阅读全文 »
建造者模式 发表于 2022-05-01 更新于 2024-11-22 分类于 设计模式 阅读次数: 20 Valine: 0 本文字数: 1.2k 阅读时长 ≈ 1 分钟 建造者模式也称为生成器模式,将一个复杂对象的构建与它的表示分离,使用同样的构建过程可以创建不同的表示 复杂对象构造 核心概念构建器模式 Builder 建造者接口,定义创建一个Product对象所需要的各个部件的操作 ConcreteBuilder 具体的构造者实现,实现各个部件的创建,并负责组装Product对象的各个部件,同时还提供一个让用户获取组装完成后的产品对象的方法 Director 指导者,用来使用Builder接口,以一个统一的过程来构建所需的Product对象 Product 产品,表示被建造者构建的复杂对象 阅读全文 »
模板方法模式 发表于 2022-05-01 更新于 2024-11-22 分类于 设计模式 阅读次数: 19 Valine: 0 本文字数: 969 阅读时长 ≈ 1 分钟 模板方法模式定义一个操作中的算法骨架,将一些步骤延迟在子类中实现,使得子类可以不改变一个算法的结构即可自定义该算法的某些特定步骤 文档模板填空 模板方法模式 在该模式中的抽象模板有三种方法: 抽象方法:父类中只声明不实现,由子类实现,在模板方法中被调用 模板方法:一个算法框架,实现对抽象方法的调度,完成固定的逻辑,对于一些不允许被改变的模板方法,一般都加上final关键字 钩子方法:由抽象类声明并实现,子类可以去扩展 阅读全文 »