行为型
文章平均质量分 53
行为型设计模式:主要关注对象之间的通信和责任分配。这些模式描述了对象之间的交互方式,帮助我们在对象之间更有效地传递消息和行为
小白想要逆袭
喜欢分享学习的小白,帅
展开
-
大话设计模式——24.迭代器模式(Iterator Pattern)
提供一种方法顺序访问一个聚合对象中各个元素,而又不暴露该对象的内部实现。(Java中使用最多的设计模式之一)优点可以不暴露集合的内部结构,又可让外部代码透明地访问集合内部的数据支持以不同的方式遍历一个聚合对象缺点对于比较简单的遍历如数组、有序列表,该方式实现比较繁琐在遍历的同时更改迭代器所在的集合结构会导致异常。原创 2024-04-10 14:16:19 · 696 阅读 · 0 评论 -
大话设计模式——23.备忘录模式(Memento Pattern)
又称快照模式,在不破坏封装性的前提下,捕获一个对象的内部状态,并且该对象之外保存这个状态。这样以后就可将该对象恢复到原先保存的状态优点提供了可以恢复的机制实现了信息的封装,用户不需要关心状态的保存细节缺点会占用较多的系统存储资源。原创 2024-04-10 13:40:35 · 525 阅读 · 0 评论 -
大话设计模式——22.访问者模式(Visitor Pattern)
表示一个作用于某对象结构中的各元素的操作。它使你可以在不改变各元素的类的前提下定义作用于这些元素的新操作优点满足开闭原则,新增操作只需新增访问类即可缺点增加新的数据结构会变得困难。原创 2024-04-10 12:57:32 · 519 阅读 · 0 评论 -
大话设计模式——21.中介者模式(Mediator Pattern)
用一个中介对象来封装一系列的对象交互。中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互优点中介者的出现减少了Colleague之间的耦合,使得可以独立地改变和复用各个Colleague类和中介者由于把对象如何协作进行了抽象,将中介作为一个独立的改变并将其封装在一个对象中,将关注的对象从对象各自本身的行为转移到它们之间的交互上,可以从宏观角度去看待系统缺点由于中介者对象过度的集中化可能导致其复杂性大大增加,导致理解难度增加和可维护性降低。原创 2024-04-10 11:44:48 · 569 阅读 · 0 评论 -
大话设计模式——20.解释器模式(Interpreter Pattern)
给定一个语言,定义它的文法的一种表示,并定义一个解释器,这个解释器使用该表示来解释语言中的句子优点容易改变和扩展文法,该模式使用类来表示文法规则,可使用继承来改变或扩展文法容易实现文法,定义抽象语法树中各个节点的类实现大体类似易于编写缺点文法中的每一条规则至少定义了一个类,因此包含许多规则的文法可能难以管理和维护文法复杂时建议使用其他如语法分析程序或编译器生成器等处理。原创 2024-04-10 11:04:41 · 331 阅读 · 0 评论 -
大话设计模式——19.责任链模式(Chain of Responsibility Pattern)
使多个对象都有机会处理请求,从而避免请求的发送者和接受者之间的耦合关系。将这些对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止。主要有两个核心行为:1.处理请求;2.将请求传递到下一节点优点客户只需要将请求发送到职责链上即可,无需关心请求的具体细节,降低了耦合度通过改变链内的调动次序,可以动态新增或删除处理类,提高了可维护性可以根据需求新增请求处理类,提高了可扩展性,同时满足开闭原则每个请求处理类只服务于自己的责任范围,满足单一职责原则缺点。原创 2024-04-10 10:26:23 · 1106 阅读 · 0 评论 -
大话设计模式——18.策略模式(Strategy Pattern)
是一系列算法的封装,即做的事情相同(方法名称相同)但是实现的方式不同,以相同方式调用所有的算法,减少算法与使用算法的耦合。直接调用方法。满足开闭原则,当增加具体策略时,不需要修改上下文代码避免使用过多的条件判断,过多的条件判断语句不利于系统可维护性,扩展性和灵活性缺点策略类可能过多可能导致膨胀,复用性较小。原创 2024-04-09 15:33:53 · 593 阅读 · 0 评论 -
大话设计模式——17.状态模式(State Pattern)
对象的行为依赖于它的状态(属性),可以根据状态的改变而改变相关行为。优点只需改变对象的状态,就可改变对象的行为多个环境对象共享一个状态对象,可以减少系统中对象的个数缺点增加系统类和对象的个数使用不当将造成程序结构和代码的混乱不符合开闭原则,新增状态需要修改源码。原创 2024-04-09 14:15:42 · 558 阅读 · 0 评论 -
大话设计模式——16.命令模式(Command Pattern)
请求以命令的形式包裹在对象中,并传给调用对象。调用对象寻找可以处理该命令的对象进行执行。命令模式是一种特殊的策略模式,体现多个策略执行的问题,而不是选择的问题优点调用者对象与接受者对象没有任何依赖关系,降低了系统的耦合度方便新的命令添加至系统中,扩展性强缺点过多的命令会导致系统中存在过多的具体命令类。原创 2024-04-09 11:55:38 · 603 阅读 · 0 评论 -
大话设计模式——15.观察者模式(Observer Pattern)
也称发布订阅模式(Publish/Subscribe),定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新观察者与被观察者是抽象耦合的,降低了目标与观察者之间的耦合关系目标与观察者之间建立了一套触发机制缺点观察者与被观察者之间如果存在循环依赖,可能会触发彼此之间的循环调用,导致系统崩溃若一个被观察者对象存在大量观察者对象,如果这些观察者对象都需要通知,会耗费大量时间。原创 2024-04-09 11:10:40 · 568 阅读 · 0 评论 -
大话设计模式——1.模板方法模式(Template Method Pattern)
定义:定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些。优点:提供了一个比较好的代码复用平台,可以不改变算法的结构去重新定义算法的某些特定步骤。例子:比较重大的考试往往有A、B两套试卷,其中一套出现问题可以立马更换另一套。缺点:增加了系统的复杂性和抽象性以及理解难度(设计模式中的通用缺点)原创 2024-02-12 22:07:35 · 964 阅读 · 0 评论