Java设计模式之访问者模式详解
什么是访问者模式?访问者模式(Visitor Pattern)是一种行为型设计模式,它允许你在不改变各元素类的前提下定义作用于这些元素的新操作。这种模式将操作与对象结构分离,使得我们可以在不修改对象结构的情况下,增加新的操作。 为什么使用访问者模式? 实现对象结构和操作的分离 增加新的操作很方...
Java设计模式之责任链模式详解
什么是责任链模式?责任链模式(Chain of Responsibility Pattern)是一种行为型设计模式,它通过为请求创建一个接收者对象的链来避免请求发送者与接收者耦合。这种模式将接收对象连成一条链,并沿着这条链传递请求,直到有一个对象处理它为止。 为什么使用责任链模式? 降低耦合度...
Java设计模式之策略模式详解
什么是策略模式?策略模式(Strategy Pattern)是一种行为型设计模式,它定义了一系列算法,并将每个算法封装起来,使它们可以相互替换。策略模式让算法独立于使用它的客户端而变化。 为什么使用策略模式? 避免使用多重条件语句 算法可以自由切换 扩展性良好 遵循开闭原则 实现示例1. 基...
Java设计模式之状态模式详解
什么是状态模式?状态模式(State Pattern)是一种行为型设计模式,它允许一个对象在其内部状态改变时改变它的行为。状态模式将状态封装成独立的类,并将与状态相关的行为委托给代表当前状态的对象。 为什么使用状态模式? 将状态相关的行为局部化 使状态转换显式化 消除庞大的条件分支语句 更好地...
Java设计模式之解释器模式详解
什么是解释器模式?解释器模式(Interpreter Pattern)是一种行为型设计模式,它定义了一个语言的语法表示,并定义一个解释器来解释该语言中的句子。这种模式被用在SQL解析、符号处理引擎等场景中。 为什么使用解释器模式? 需要解释特定的语言或语法 可以轻松地改变和扩展语法 实现语法规...
Java设计模式之备忘录模式详解
什么是备忘录模式?备忘录模式(Memento Pattern)是一种行为型设计模式,它允许在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,以便以后当需要时能将该对象恢复到原先保存的状态。 为什么使用备忘录模式? 保存对象的历史状态 实现撤销/重做功能 不破坏对象的封...
Java设计模式之中介者模式详解
什么是中介者模式?中介者模式(Mediator Pattern)是一种行为型设计模式,它用一个中介对象来封装一系列对象之间的交互。中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。 为什么使用中介者模式? 降低系统对象之间的耦合度 简化对象之间的交互 集中...
Java设计模式之观察者模式详解
什么是观察者模式?观察者模式(Observer Pattern)是一种行为型设计模式,它定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态发生变化时,会通知所有观察者对象,使它们能够自动更新自己。 为什么使用观察者模式? 实现了表示层和数据逻辑层的分离 支持...
Java设计模式之迭代器模式详解
什么是迭代器模式?迭代器模式(Iterator Pattern)是一种行为型设计模式,它提供一种方法顺序访问一个聚合对象中的各个元素,而又不需要暴露该对象的内部表示。迭代器模式是Java集合框架的核心设计模式之一。 为什么使用迭代器模式? 访问一个聚合对象的内容而无需暴露它的内部表示 支持对聚...
Java设计模式之命令模式详解
什么是命令模式?命令模式(Command Pattern)是一种行为型设计模式,它将请求封装成对象,从而可以用不同的请求对客户进行参数化,实现请求的排队、记录日志、撤销等功能。 为什么使用命令模式? 将请求发送者和接收者解耦 可以将命令存储和传递 支持撤销/重做操作 可以组合命令实现宏命令 ...
Java设计模式之模板方法模式详解
什么是模板方法模式?模板方法模式(Template Method Pattern)是一种行为型设计模式,它定义了一个算法的骨架,将一些步骤延迟到子类中实现。模板方法使得子类可以在不改变算法结构的情况下,重新定义算法中的某些步骤。 为什么使用模板方法模式? 复用代码,避免重复 控制算法的主要流程...
Java设计模式之代理模式详解
什么是代理模式?代理模式(Proxy Pattern)是一种结构型设计模式,它允许你提供一个代理来控制对其他对象的访问。代理对象可以在客户端和目标对象之间起到中介的作用,并且可以添加额外的功能。 为什么使用代理模式? 控制对对象的访问 在访问对象时添加额外的功能 延迟加载 权限控制 代理模式...