设计模式
文章平均质量分 91
梳理常用设计模式
夜雨风云
求实求真
展开
-
设计模式概述
简单描述下为什么要学习设计模式,以及如何对设计模式进行分类。原创 2022-07-17 23:36:50 · 212 阅读 · 0 评论 -
装饰器模式、代理模式、适配器模式对比
装饰器模式、代理模式和适配器模式都是结构型设计模式,它们的主要目标都是将,使得程序结构更加清晰。这里将装饰器模式、代理模式和适配器模式进行比较,主要是因为三个设计模式的类图结构相似度较高、且功能上存在一定的相似度。原创 2024-04-28 14:26:27 · 1713 阅读 · 4 评论 -
状态模式和策略模式对比
状态模式和策略模式都是行为型设计模式,它们的主要目标都是将变化的行为封装起来,使得程序更加灵活和可维护。之所以将状态模式和策略模式进行比较,主要是因为两个设计模式的类图相似度较高。但是,从状态模式和策略模式的应用场景来说,两个模式存在显著的差异。原创 2024-04-24 23:39:48 · 1063 阅读 · 0 评论 -
简单工厂、工厂方法、抽象工厂对比
简单工厂、工厂方法和抽象工厂是三种常见的工厂设计模式,它们在软件设计中各有其独特的应用场景和优缺点。因为三种设计模式都属于工厂模式,在实际应用中可能存在误用的场景,这里对其做下对比,以便更好的理解这三种设计模式。原创 2024-04-24 21:49:52 · 841 阅读 · 0 评论 -
设计模式常见面试题
简单梳理下二十三种设计模式,在使用设计模式的时候,不仅要对其分类了然于胸,还要了解每个设计模式的应用场景、设计与实现,以及其优缺点。同时,还要能区分功能相近的设计模式,避免出现误用的情况。原创 2023-11-19 22:24:37 · 518 阅读 · 0 评论 -
解释器模式(Interpreter)
解释器模式是一种行为设计模式,可以解释语言的语法或表达式。给定一个语言,定义它的文法的一种表示,然后定义一个解释器,使用该文法来解释语言中的句子。原创 2023-08-07 23:04:05 · 495 阅读 · 0 评论 -
备忘录模式(Memento)
备忘录模式是一种行为设计模式,在不破坏封装性的前提下,允许在不暴露对象实现细节的情况下保存和恢复对象之前的状态。原创 2023-08-07 11:07:17 · 678 阅读 · 0 评论 -
迭代器模式(Iterator)
迭代器模式是一种行为设计模式,可以在不暴露底层实现(列表、栈或树等)的情况下,遍历一个聚合对象中所有的元素。原创 2023-08-06 19:04:55 · 284 阅读 · 0 评论 -
中介者模式(Mediator)
中介者模式是一种行为设计模式,可以减少对象之间混乱无序的依赖关系。该模式会限制对象之间的直接交互,迫使它们通过一个封装了对象间交互行为的中介者对象来进行合作,从而使对象间耦合松散,并可独立地改变它们之间的交互。原创 2023-08-05 20:52:53 · 547 阅读 · 0 评论 -
模板方法模式(Template Method)
模板方法模式是一种行为设计模式,在超类中定义了一个算法的框架,而将一些步骤的实现延迟到子类中,使得子类可重定义该算法的特定步骤。原创 2023-08-05 16:27:57 · 759 阅读 · 0 评论 -
访问者模式(Visitor)
访问者模式是一种行为设计模式,可封装一些作用于当前数据结构的各元素的操作,它可以在不改变数据结构的前提下定义作用于这些元素的新的操作。原创 2023-08-04 21:11:51 · 740 阅读 · 0 评论 -
命令模式(Command)
命令模式是一种行为设计模式,可将一个请求封装为一个对象,用不同的请求将方法参数化,从而实现延迟请求执行或将其放入队列中或记录请求日志,以及支持可撤销操作。原创 2023-08-04 15:58:13 · 1357 阅读 · 0 评论 -
状态模式(State)
状态模式是一种行为设计模式,允许一个对象在其内部状态改变时改变它的行为,使其看起来修改了自身所属的类。原创 2023-08-03 22:08:20 · 969 阅读 · 0 评论 -
责任链模式(Chain of Responsibility)
责任链模式是一种行为设计模式,允许将请求沿着处理者链进行发送。收到请求后,每个处理者均可对请求进行处理,或将其传递给链上的下个处理者。职责链模式使多个对象都有机会处理请求,从而避免请求的发送者和接受者之间的耦合关系。原创 2023-08-03 16:41:49 · 336 阅读 · 0 评论 -
观察者模式(Observer)
观察着模式是一种行为设计模式,可以用来定义对象间的一对多依赖关系,使得每当一个对象状态发生改变时,其相关依赖对象皆得到通知并被自动更新。原创 2023-08-03 16:38:57 · 694 阅读 · 0 评论 -
策略模式(Strategy)
策略模式是一种行为设计模式,就是定义一系列算法,然后将每一个算法封装起来,并使它们可相互替换。本模式通过定义一组可相互替换的算法,实现将算法独立于使用它的用户而变化。原创 2023-08-03 16:34:50 · 1241 阅读 · 0 评论 -
代理模式(Proxy)
代理模式是一种结构型设计模式,让开发者能够提供对象的替代品或其占位符。代理对象控制着对于原对象的访问,并允许在将请求提交给原对象前后进行一些处理。代理模式为原对象提供一种代理以**控制对这个对象的访问**,并由代理对象控制对原对象的引用。原创 2023-08-03 12:03:58 · 248 阅读 · 0 评论 -
享元模式(Flyweight)
享元模式是一种结构型设计模式,主要通过共享技术有效地减少大量细粒度对象的复用,以减少内存占用和提高性能。由于享元模式要求能够共享的对象必须是细粒度对象,因此它又称为轻量级模式。原创 2023-08-03 12:03:28 · 110 阅读 · 0 评论 -
外观模式(Facade)
外观模式是一种结构型设计模式,用来给子系统中的一组接口提供一个一致的界面。当外部与一个子系统的通信必须通过一个统一的外观对象进行时,可以通过外观模式定义一个高层接口,该接口使得这一子系统更加容易使用。外观模式又称为门面模式。原创 2023-08-03 12:03:03 · 133 阅读 · 0 评论 -
装饰器模式(Decorator)
装饰器模式是一种结构型设计模式,用来动态地给一个对象增加一些额外的职责。就增加对象功能来说,装饰器模式比生成子类实现更为灵活。装饰器模式的别名为包装器(Wrapper),与适配器模式的别名相同,但它们适用于不同的场合。原创 2023-08-01 17:08:15 · 375 阅读 · 0 评论 -
组合模式(Composite)
组合模式是一种结构型设计模式,主要用来将,因此该模式也称为“部分-整体”模式。简言之,组合模式就是用来将一组对象组合成树状结构,并且能像使用独立对象一样使用它们。原创 2023-08-01 17:04:14 · 572 阅读 · 0 评论 -
桥接模式(Brige)
桥接模式是一种结构型设计模式, 又称为柄体(Handle and Body)模式或接口(Interface)模式。桥接模式,可将将抽象部分与它的实现部分分离,使它们都可以独立地变化。如将一个大类或一系列紧密相关的类拆分为抽象和实现两个独立的层次结构,从而在开发时分别使用。原创 2023-08-01 16:54:54 · 473 阅读 · 0 评论 -
适配器模式(Adapter)
适配器模式用于将一个接口转换成用户希望的另一个接口,适配器模式使接口不兼容的那些类可以一起工作,其别名为包装器(Wrapper)。适配器模式既可以作为,也可以作为。原创 2023-08-01 16:52:38 · 330 阅读 · 0 评论 -
单例模式(Singleton)
单例模式保证一个类仅有一个实例,并提供一个全局访问点来访问它,这个类称为单例类。可见,在实现单例模式时,除了保证一个类只能创建一个实例外,还需提供一个全局访问点。原创 2023-08-01 16:26:28 · 1152 阅读 · 0 评论 -
简单工厂模式(Simple Factory)
简单工厂模式,又称为静态工厂方法(Static Factory Method)模式。在简单工厂模式中,可以根据参数的不同返回不同类的实例。简单工厂模式专门定义一个类来负责创建其他类的实例,被创建的实例通常都具有共同的父类。GoF,可看成是工厂方法模式的退化实现。原创 2023-08-01 16:13:19 · 476 阅读 · 0 评论 -
工厂方法模式(Factory Method)
工厂方法模式就是定义一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法模式将类的实例化(具体产品的创建)延迟到工厂类的子类(具体工厂)中完成,即。原创 2023-08-01 16:15:45 · 608 阅读 · 0 评论 -
抽象工厂模式(Abstract Factory)
抽象工厂模式提供一个创建一组相关或相互依赖的对象的接口,而无须指定它们具体的类,每个子类可以生产一系列相关的产品。原创 2023-08-01 16:23:31 · 440 阅读 · 0 评论 -
原型模式(Prototype)
原型模式是一种创建型设计模式,使调用方能够复制已有对象,而又无需使代码依赖它们所属的类。当有一个类的实例(原型),并且想通过复制原型来创建新对象时,通常会使用原型模式。原创 2023-08-01 16:29:12 · 454 阅读 · 0 评论