设计模式
文章平均质量分 87
设计模式
嘉禾嘉宁papa
这个作者很懒,什么都没留下…
展开
-
设计模式(行为型模式)空对象模式
空对象模式(Null Object Pattern)是一种行为设计模式,它用于处理对象缺失的情况,以减少对空(null)引用的使用和处理。该模式的目标是在对象不可用或缺失时提供一个替代对象,以避免在代码中频繁检查空引用,并降低因空引用而导致的错误。空对象模式基本思想是定义一个抽象类或接口,并提供一个实现该抽象的空对象,其中包含默认的无效或不执行任何操作的方法。这样,当需要对象时,如果实际对象不存在,系统将返回一个空对象,而不是返回空引用。减少空引用检查。原创 2024-03-01 13:41:36 · 852 阅读 · 0 评论 -
设计模式(行为型模式)解释器模式
解释器模式(Interpreter Pattern)是一种行为设计模式,用于解释特定语言或处理特定问题领域的语法或表达式。它定义了一种语言的语法表示,并使用该表示来解释语言中的句子。通常用于构建解析器、编译器和规则评估引擎等场景。抽象表达式(Abstract Expression):定义解释器的接口,通常包含一个 interpret() 方法,用于解释语法或表达式。终结符表达式(Terminal Expression):实现抽象表达式接口,在语言中的最小单元上进行解释操作。原创 2024-02-19 09:10:19 · 1333 阅读 · 0 评论 -
设计模式(行为型模式)访问者模式
访问者模式(Visitor Pattern)是一种行为设计模式,它允许在不改变被访问对象的类的情况下定义新的操作。该模式的核心思想是将数据结构和对数据的操作分离开来,使得可以在不修改数据结构的前提下定义新的操作。它允许定义在数据结构上进行的操作,并且可以在数据结构上方便地增加新的操作,而无需修改原有的代码。访问者(Visitor): 定义了对数据结构中各元素的访问操作接口或抽象类。每个具体的访问者类都实现了对应的访问操作。具体访问者(Concrete Visitor)原创 2024-02-19 09:09:25 · 716 阅读 · 0 评论 -
设计模式(行为型模式)模板方法模式
模板方法模式又称模板模式(Template Pattern)是一种行为设计模式,它定义了一个算法的框架,并允许子类重写特定步骤的方法,而不改变算法的整体结构。在模板模式中,定义了一个抽象类,该抽象类包含了算法的框架,其中的某些步骤由抽象方法或默认实现提供。具体步骤的实现延迟到子类中。这样,子类可以根据需要重写父类的方法,同时保留算法的整体结构。模板(Abstract Template): 定义了算法的框架,通常是一个抽象类,其中包含了算法中的各个步骤,有些步骤可能是抽象的或有默认实现。原创 2024-02-19 09:08:28 · 1060 阅读 · 0 评论 -
设计模式(行为型模式)策略模式
策略模式(Strategy Pattern)是一种行为设计模式,它允许定义一系列算法,将每个算法封装到独立的类中,并使它们可以相互替换。这使得算法可以独立于使用它们的客户端进行变化。在策略模式中,算法被视为一个策略。这些策略被封装到各自的类中,并通过接口或抽象类暴露统一的方法,使得这些策略可以相互替换。然后,客户端可以根据需要选择使用的策略。这种模式使得算法可以独立于其使用者变化。它使得代码更加灵活、可扩展,并且更易于维护,因为新的算法可以在不修改现有客户端代码的情况下添加。原创 2024-02-08 11:17:52 · 607 阅读 · 0 评论 -
设计模式(行为型模式)状态模式
状态模式(State Pattern)是一种行为设计模式,它允许对象在其内部状态发生改变时改变其行为。该模式主要用于根据对象的内部状态使其行为不同。在状态模式中,对象的行为会根据内部状态的变化而变化。环境(Context):环境类持有一个状态对象,并在状态对象之间进行切换。它会委托给当前状态对象处理请求。抽象状态(State):定义了一个接口或抽象类,用于封装特定状态下的行为。所有具体状态类都必须实现这个抽象状态,以便在环境对象中切换状态。具体状态(Concrete State)原创 2024-02-08 11:16:18 · 820 阅读 · 0 评论 -
设计模式(行为型模式)观察者模式
观察者模式(Observer Pattern)是一种行为设计模式,它定义了一种一对多的依赖关系,当一个对象的状态发生变化时,其所有依赖者(观察者)都会自动收到通知并进行更新。主题(Subject): 也称为被观察者或可观察对象,维护了一组观察者对象,并提供了添加、删除和通知观察者的方法。观察者(Observer): 也称为订阅者,定义了一个更新接口或抽象类,用于接收主题的通知并进行相应的处理。原创 2024-02-07 10:22:05 · 1567 阅读 · 0 评论 -
设计模式(行为型模式)备忘录模式
备忘录模式(Memento Pattern)是一种行为设计模式,旨在捕获一个对象的内部状态,并在不破坏对象封装的前提下将其保存,以便稍后可以恢复到先前的状态。备忘录模式指的是在不破坏封装性的前提下,捕获一个对象的内部状态,并在对象之外保存这个状态,从而在需要时能将对象恢复到先前的状态。这种模式涉及三个主要角色:原发器(Originator)、备忘录(Memento)和管理者(Caretaker)。原发器(Originator):负责创建一个备忘录,并记录当前状态到备忘录对象,也可以从备忘录对象中恢复状态。原创 2024-02-07 10:20:41 · 885 阅读 · 0 评论 -
设计模式(行为型模式)中介者模式
中介者模式(Mediator Pattern)是一种行为设计模式,旨在减少对象之间的直接通信,通过引入一个中介对象(中介者)来集中控制和协调这些对象之间的交互。中介者模式的定义如下:中介者模式指的是使用一个中介对象来封装一系列对象之间的交互,使得对象之间不再显式地相互引用,而是通过中介者对象来进行通信。这样一来,对象之间的耦合度降低,增加新对象也更加容易,因为它们不需要知道彼此的细节,只需了解中介者的接口即可。中介者(Mediator):定义了一个接口,用于各个同事对象之间的通信。原创 2024-02-07 10:19:59 · 1979 阅读 · 0 评论 -
设计模式(行为型模式)迭代器模式
迭代器模式(Iterator Pattern)是一种行为设计模式,它提供一种方法来顺序访问集合对象中的各个元素,而不暴露集合的底层表示。迭代器模式通过提供一个迭代器(Iterator)接口,让客户端能够访问集合对象中的元素,而无需了解集合的内部结构。迭代器(Iterator): 定义了遍历集合元素的接口,包括访问元素、移动到下一个元素和判断是否还有下一个元素等方法。具体迭代器(Concrete Iterator): 实现了迭代器接口,在特定集合中遍历元素。聚合对象(Aggregate)原创 2024-02-06 17:35:42 · 1127 阅读 · 0 评论 -
设计模式(行为型模式)命令模式
命令模式(Command Pattern)是一种行为设计模式,它允许将请求或操作封装为一个单独的对象。这种模式允许参数化方法调用,将方法调用、请求或操作封装成一个对象,从而可以在不同的时间将请求排队、记录请求日志、撤销操作等。命令模式的核心思想是将请求封装成一个对象,使得请求的发送者和接收者解耦。发送者只需知道如何发送命令,并不需要知道接收者如何处理命令、何时执行命令以及具体的命令细节。命令(Command): 定义了执行操作的接口,包含了执行命令的方法。具体命令(Concrete Command)原创 2024-02-06 17:35:04 · 520 阅读 · 0 评论 -
设计模式(行为型模式)责任链模式
责任链模式(Chain of Responsibility Pattern)是一种行为设计模式,允许你将请求沿着处理者链进行传递,直到有一个处理者能够处理该请求为止。这种模式解耦了发送者和接收者之间的关系,允许多个对象对请求进行处理,但发送者无需知道请求的处理过程和最终哪个对象处理了它。在责任链模式中,请求通常沿着一个对象链传递,每个处理者对象都包含了自己的处理逻辑和对下一个处理者的引用。当收到请求时,处理者可以选择自行处理、部分处理或将请求传递给链中的下一个处理者。Handler(抽象处理者)原创 2024-02-06 17:33:55 · 1729 阅读 · 0 评论 -
设计模式(结构型模式)代理模式
多种方式实现代理模式原创 2024-02-06 09:53:13 · 1011 阅读 · 0 评论 -
设计模式(结构型模式)享元模式
享元模式是一种结构型设计模式,旨在通过共享对象来最大程度地减少内存使用和提高性能。它主要用于减少创建对象的数量,节省内存和提高性能。该模式通过共享相似对象之间的公共部分来减少内存占用。当需要创建大量相似对象时,通过重用已存在的相似对象,而不是每次都新建一个对象来节省内存。这个被共享的对象称为享元(Flyweight),包含了对象的共享状态和非共享状态。共享状态是可以被多个对象共享的部分,而非共享状态是对象独有的部分。原创 2024-02-05 17:04:14 · 995 阅读 · 0 评论 -
设计模式(结构型模式)外观模式
外观模式(Facade Pattern)是一种结构型设计模式,提供了一个统一的接口,用于访问子系统中的一组接口。这个模式隐藏了子系统的复杂性,并为客户端提供了一个更简单的接口,使得客户端与子系统之间的通信更加简单和直接。外观模式的主要目的是降低系统的复杂性,为客户端提供一个更加简化的接口,使得客户端不需要了解系统的内部结构和实现细节,只需通过外观类进行操作即可。在外观模式中,通常有以下几个角色:Facade(外观): 外观类是客户端访问子系统的入口。原创 2024-02-05 17:03:23 · 1174 阅读 · 0 评论 -
设计模式(结构型模式)装饰器模式
装饰器模式是一种结构型设计模式,它允许向现有对象动态地添加新功能,同时又不改变其结构。它通过创建包装对象来包裹原始类,在不改变其接口的情况下,为对象添加新的行为或责任。装饰器模式通常包含以下角色:Component(组件):定义了一个对象接口,可以动态地添加新的功能。ConcreteComponent(具体组件):实现了组件接口,是被装饰的类。Decorator(装饰器抽象类):实现了组件接口,并持有一个对组件对象的引用,在其内部包装组件对象,可以动态地为组件添加新的功能。原创 2024-02-05 16:56:08 · 563 阅读 · 0 评论 -
设计模式(结构型模式)组合模式
组合模式是一种结构型设计模式,它允许你将对象组合成树形结构以表示“整体-部分”的层次结构。组合模式使得客户端对单个对象和组合对象的处理具有一致性,可以像处理单个对象一样来处理组合对象。叶子(Leaf): 叶子是组合结构的最底层对象,它没有子元素。它实现了组合中的统一接口,但是不包含其他子对象。组合(Composite): 组合是包含子元素的对象。它也实现了统一的接口,但是除了执行基本操作外,它还能管理其子元素。这种模式使得客户端可以递归地处理单个对象和组合对象,而无需了解处理的是哪种类型的对象。原创 2024-02-05 14:16:46 · 826 阅读 · 0 评论 -
设计模式(结构型模式)桥接模式
桥接模式(Bridge Pattern)是一种结构型设计模式,用于将抽象部分与它的实现部分分离,使它们可以独立地变化。桥接模式的核心思想是将一个大类或一系列紧密相关的类拆分成两个独立的层次结构:抽象部分(Abstraction)和实现部分(Implementation),使它们能够独立地进行变化。在桥接模式中,抽象部分定义了客户端使用的高层接口,而实现部分则是实现这些接口的具体实现类。抽象部分和实现部分各自通过接口进行通信,而不是通过继承的方式,这样就可以在运行时动态地将抽象部分和实现部分组合起来。原创 2024-02-05 14:15:46 · 1451 阅读 · 0 评论 -
设计模式(结构型模式)适配器模式
适配器模式是一种结构型设计模式,允许将一个类的接口转换成客户端所期望的另一个接口,使得原本由于接口不兼容而不能一起工作的类能够协同工作。适配器模式通常用于连接两个不兼容的接口,允许它们协同工作,而无需修改其原始代码。适配器模式包含以下主要角色:目标接口(Target): 客户端期待的接口。客户端通过这个接口与适配器进行交互。适配器(Adapter): 实现了目标接口,并持有一个对被适配者的引用。它将被适配者的接口转换为目标接口,使得被适配者能够被客户端使用。被适配者(Adaptee)原创 2024-02-05 14:14:02 · 1406 阅读 · 0 评论 -
设计模式(创建型模式)原型模式
原型模式的不同实现原创 2024-02-05 10:07:55 · 1490 阅读 · 0 评论 -
设计模式(创建型模式)建造者模式
建造者模式的使用原创 2024-02-05 09:51:41 · 758 阅读 · 0 评论 -
设计模式(创建型模式)工厂模式
简单工厂模式、工厂方法模式、抽象工厂模式原创 2024-02-05 09:41:54 · 1358 阅读 · 0 评论 -
设计模式(创建型模式)单例模式
懒汉式,饿汉式,双重检查,静态内部类,枚举原创 2024-02-03 13:30:32 · 1111 阅读 · 0 评论 -
设计模式之七大设计原则
浅析面向对象七大设计原则原创 2024-02-02 15:19:19 · 1400 阅读 · 0 评论