设计模式
文章平均质量分 95
会灰的飞猫
这个作者很懒,什么都没留下…
展开
-
AI Chat 设计模式:15. 桥接模式
桥接模式(Bridge Pattern)是一种结构性设计模式,用于将抽象部分与其实现部分分离,使它们可以独立地变化。在桥接模式中,抽象部分和实现部分分别由两个独立的类层次结构组成,并且这两个层次结构可以独立地进行扩展。抽象部分包含高层业务逻辑,而实现部分包含低层实现细节。通过桥接模式,抽象部分和实现部分可以自由地组合,而不会受到固定的绑定关系的限制。桥接模式的核心思想是通过将继承关系替换为组合关系,解耦抽象和实现。原创 2023-08-15 17:04:38 · 1085 阅读 · 0 评论 -
AI Chat 设计模式:14. 适配器模式
适配器模式是一种常见的设计模式,用于将一个类的接口转换成客户端所期望的另一个接口。适配器模式允许原本不兼容的类能够合作,通过适配器充当中间层的角色来实现。适配器模式的主要目的是使得原本由于接口不匹配而无法工作的类可以进行协同工作。它封装了不兼容的接口,将其转换为符合客户端需求的另一个接口。通过适配器模式,客户端可以通过统一的接口与不同的类进行交互,而无需修改已有的代码。将一个已有的类与其他客户端一起使用,但是接口不符合需求。与多个类协同工作,而这些类具有不兼容的接口。原创 2023-08-13 20:25:38 · 691 阅读 · 1 评论 -
AI Chat 设计模式:13. 代理模式
代理模式的核心思想是通过引入代理对象来间接访问目标对象,从而实现对目标对象的控制和管理。这种设计模式在软件行业广泛应用,可以帮助实现解耦、增加安全性、提升性能等目标。原创 2023-08-08 21:43:33 · 506 阅读 · 0 评论 -
AI Chat 设计模式:12. 享元模式
享元模式是一种软件设计模式,用于提高系统的性能和内存利用率。该模式通过共享对象来减少内存消耗,特别是在大量对象需要同时存在的情况下。内部状态和外部状态。内部状态是不随外部环境变化而变化的状态,可以被多个对象共享;而外部状态则是随外部环境变化而变化的状态,每个对象都有自己的外部状态。具体而言,享元模式将对象的创建和管理分为两部分:共享的部分和独立的部分。共享的部分被封装在享元对象中,可以被多个具体对象共享,而独立的部分则由客户端管理。原创 2023-08-04 22:03:25 · 711 阅读 · 0 评论 -
AI Chat 设计模式:11. 状态模式
状态模式是一种行为型设计模式,它允许对象在其内部状态发生改变时改变其行为。该模式将对象的状态封装成独立的状态类,使得状态的变化可以彼此替换而不影响使用状态的对象。通过使用状态模式,可以实现状态转换和行为的解耦,使得代码更加可维护、可扩展和可复用。上下文(Context):上下文是包含了状态对象的环境类。它定义了一个接口,用于客户端和具体状态类之间的交互。抽象状态(State):抽象状态是一个接口或抽象类,定义了具体状态类需要实现的方法,并且为上下文对象提供一个统一的接口。原创 2023-08-03 22:45:08 · 847 阅读 · 0 评论 -
AI Chat 设计模式:10. 组合模式
组合模式是一种结构型设计模式,它允许将对象组合成树形结构,以表示“部分-整体”的层次关系。通过组合模式,客户端可以统一对待单个对象和组合对象,而无需进行区分。抽象构件(Component):它是组合中的对象声明接口,可以包含一些默认实现,比如添加、移除子构件等。它可以是抽象类或者接口。叶子构件(Leaf):它表示叶子节点,即没有子节点的对象。叶子构件实现了抽象构件的接口。组合构件(Composite):它表示有子节点的节点对象,可以添加和移除子节点。组合构件也实现了抽象构件的接口,并。原创 2023-07-28 22:56:05 · 568 阅读 · 0 评论 -
AI Chat 设计模式:9. 命令模式
命令模式是一种行为型设计模式,它将请求封装为一个对象,从而使不同的请求能够在客户端和接收者之间解耦。命令对象(Command)、调用者(Invoker)和接收者(Receiver)。命令对象封装了一个特定的请求和对应的操作,并提供了一个执行该操作的方法。命令对象通常具有一个执行操作的execute()方法,以及可能还有撤销操作的undo()方法。调用者充当请求的发送者和命令对象的执行者,它持有命令对象并调用其execute()方法来执行请求。调用者无需知道请求的具体细节,只需通过命令对象来执行请求。原创 2023-07-23 09:54:31 · 795 阅读 · 5 评论 -
AI Chat 设计模式:8. 门面(外观)模式
门面模式(Facade Pattern)是一种结构型设计模式,它提供了一个简单的接口,用于统一封装子系统中的一组接口,并将其展示给客户端。门面模式的目的是通过隐藏子系统的复杂性,简化客户端与子系统之间的交互。在门面模式中,门面类(Facade Class)充当了一个中介者的角色,它知道如何处理客户端的请求,并将其委派给相应的子系统进行处理。门面类对外暴露的接口是简单的、易于理解的,客户端只需通过门面类与子系统进行交互,无需直接和子系统的各个组件打交道。简化客户端与子系统之间的交互。原创 2023-07-18 22:28:19 · 898 阅读 · 1 评论 -
AI Chat 设计模式:7. 单例模式
单例模式是一种设计模式,旨在**确保类只能有一个实例**,并提供全局访问点来获取该实例。这意味着无论在系统中的哪个位置,调用者获取到的都是同一个实例对象。原创 2023-07-15 13:26:02 · 1045 阅读 · 4 评论 -
AI Chat 设计模式:6. 装饰模式
装饰模式的核心思想是通过组合而非继承来扩展对象的功能,使得系统具有更好的灵活性和可扩展性。通过不同的装饰器的组合,可以实现不同的功能组合,而且**每个装饰器可以独立地进行扩展或修改**,不会影响到其他装饰器和原始对象。原创 2023-07-12 20:22:46 · 349 阅读 · 2 评论 -
AI Chat 设计模式:5. 策略模式
本文是该系列的第五篇,采用问答式的方式展开,问题由我提出,答案由 Chat AI 作出,灰色背景的文字则主要是我的旁白。原创 2023-07-08 18:23:42 · 600 阅读 · 0 评论 -
AI Chat 设计模式:4. 建造者模式
建造者模式是一种创建型设计模式,它**将一个复杂对象的构建过程和其表示分离**,使得同样的构建过程可以创建不同的表示。这个模式的核心思想是将一个复杂的对象构建过程拆分成多个步骤,在这些步骤之间建立一定的依赖关系,最终生成一个完整的对象。原创 2023-07-04 22:37:34 · 694 阅读 · 0 评论 -
AI Chat 设计模式:3. 原型模式
原型模式是一种创建型设计模式,它通过**克隆现有的对象来创建新对象**。这种模式的关键在于提供一个原型对象,客户端通过克隆原型对象创建出新的对象。这样可以避免手工创建对象的复杂性,并**减少了重复的创建**过程,提高了系统的效率。原创 2023-06-19 21:12:46 · 1825 阅读 · 5 评论 -
AI Chat 设计模式:2. 工厂设计模式
工厂设计模式是一种创建型设计模式,旨在解决对象的创建和实例化过程中的一些问题。通常情况下,我们可以通过直接在代码中使用 new 关键字创建对象实例,但是在某些场景下,我们可能需要更加灵活、可扩展的创建方式,以简化代码并提高可维护性。工厂模式通过引入一个专门的“工厂”对象来创建和生成对象实例,从而将对象的创建和实例化过程完全隔离开来。这个“工厂”对象承担了所有的创建和实例化逻辑,客户端代码只需要向它提供所需的参数以及需要的对象类型,就能够得到一个完整的可用对象实例。工厂模式通常会包括一个工厂接口和。原创 2023-06-16 23:35:06 · 1268 阅读 · 2 评论 -
AI Chat 设计模式:1. 模板方法
模板方法设计模式(Template Method Design Pattern)是一种行为型设计模式。它的主要思想是定义一个算法的骨架,将某些步骤推迟到子类实现。它允许子类重写算法的某些步骤,同时保持算法的整体结构不变。模板方法设计模式由两个角色组成,分别是抽象类和具体子类。抽象类定义算法的骨架,包括一些抽象方法和模板方法。具体子类实现抽象方法,以便定制算法在特定情况下的行为。使用模板方法设计模式可以避免代码的重复,同时使得程序更加灵活,易于扩展。原创 2023-06-13 22:17:18 · 1045 阅读 · 0 评论