
设计模式
文章平均质量分 80
Easyzoom
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
软件设计思想--软件架构基础
描述系统的结构和行为展示系统如何由组件组成记录组件之间的关系指导设计和实现决策。原创 2025-06-13 18:52:04 · 582 阅读 · 0 评论 -
设计模式专题之C语言-观察者模式
观察者模式(Observer Pattern)是一种行为型设计模式,它定义了对象之间的一对多依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都会得到通知并被自动更新。这种模式在很多场景下都非常有用,比如在GUI应用中,用户界面组件通常需要响应数据模型中的变化。原创 2024-08-29 10:20:31 · 701 阅读 · 0 评论 -
设计模式专题之C语言-访问者模式
访问者模式是一种行为型设计模式,它允许我们向现有类结构添加新的行为,而无需修改这些类。这种模式使用了一个访问者类,该类定义了一组访问方法,每个方法对应于结构中的某个类。这样,我们可以轻松地在不改变原有结构的情况下,通过创建不同的访问者来为整个结构添加新功能。适用场景当你需要对一个对象结构中的对象进行很多不同的并且不相关的操作时。当对象结构中的对象有共同的操作集合时。当需要对这些操作进行参数化时。原创 2024-08-29 10:19:43 · 528 阅读 · 0 评论 -
设计模式专题之C语言-解释器模式
解释器模式是一种行为型设计模式,它允许为简单的文法定义一个语言,并且可以解析这个语言中的句子。这种模式常用于编译器、数据库查询引擎等领域,用于处理特定的领域语言(DSL, Domain Specific Language)。本文将介绍如何使用C语言实现一个简单的解释器模式示例。原创 2024-08-29 09:09:55 · 521 阅读 · 0 评论 -
设计模式专题之C语言-备忘录模式
备忘录模式是一种行为设计模式,它允许在不破坏封装性的前提下捕获一个对象的内部状态,并且可以在以后将对象恢复到该状态。这种模式通常用于实现撤销功能、或者保存游戏进度等场景。备忘录模式的基本结构Originator(发起人):维护一个备忘录对象,用以存储当前的状态。Memento(备忘录):负责存储发起人的内部状态,并防止发起人以外的对象访问这些状态。Caretaker(管理者):负责保存和提供备忘录对象,但不能对备忘录的内容进行操作。原创 2024-08-29 09:09:12 · 563 阅读 · 0 评论 -
设计模式专题之C语言-中介者模式
中介者模式是一种行为设计模式,它定义了一个对象来封装一系列对象交互的方式。中介者模式减少了对象间的显式依赖关系,使得它们不需要相互引用就可以相互作用。这种模式简化了系统的维护和扩展。原创 2024-08-29 09:08:17 · 478 阅读 · 0 评论 -
设计模式专题之C语言-迭代器模式
迭代器模式是一种行为设计模式,它允许你顺序地遍历集合中的元素,而不需要暴露其底层的表示。在C语言中,由于没有类和对象的概念,实现迭代器模式需要使用函数指针、结构体等手段。使用场景当需要提供一种方法来访问一个容器对象的各个元素时,而又不想暴露该对象的内部细节。在遍历过程中可能需要执行额外的操作(如过滤条件)。原创 2024-08-29 09:06:51 · 479 阅读 · 0 评论 -
设计模式专题之C语言-职责链模式
职责链(Chain of Responsibility)模式是一种行为设计模式,它允许请求沿着处理者链传递,直到其中一个处理者处理它。这种模式避免了请求发送者与接收者之间的耦合关系,让多个对象都有机会处理请求。使用场景当有多个对象可以处理同一个请求,但是具体由哪个对象处理该请求在运行时刻自动确定。在需要动态指定一组对象处理一个请求的时候。避免请求发送者和接收者之间的耦合。原创 2024-08-29 09:05:40 · 824 阅读 · 0 评论 -
设计模式专题之C语言-命令模式
命令模式(Command Pattern)是一种行为型设计模式,它将请求封装为一个对象,从而使你能够参数化方法调用。这种模式允许我们解耦发送者和接收者,使得系统更加灵活,易于扩展。解耦: 发送者(遥控器)不需要知道接收者(电视)的实现细节。可扩展性: 可以轻松添加新的命令或修改现有命令的行为,而无需更改发送者或接收者的代码。灵活性: 支持撤销/重做等高级功能,只需稍作修改即可实现。原创 2024-08-29 09:04:20 · 973 阅读 · 0 评论 -
设计模式专题之C语言-策略模式
在软件工程中,设计模式是一种通用的解决方案,用于解决常见的问题。其中一种非常实用的设计模式是策略模式。策略模式定义了一系列算法,并将每一个算法封装起来,使它们可以互相替换。这样做的好处是算法的变化不会影响到使用算法的客户。原创 2024-08-29 09:03:10 · 465 阅读 · 0 评论 -
设计模式专题之C语言-状态模式
在软件工程中,状态模式是一种行为设计模式,它允许一个对象在其内部状态改变时改变它的行为。状态模式可以使得状态的变化更加明确和易于管理。本文将通过一个简单的交通信号灯示例来解释状态模式,并用C语言实现。状态模式简介状态模式的核心在于将不同的状态抽象成类,并且允许这些状态类管理它们自己的行为。当外部条件发生变化时,可以通过切换不同的状态类来改变对象的行为。这样做的好处是将行为和状态紧密地耦合在一起,使得系统更易于扩展和维护。状态模式通过将对象的行为与其内部状态分离,使得代码更加清晰和易于维护。原创 2024-08-29 09:00:19 · 499 阅读 · 0 评论 -
设计模式专题之C语言-模板方法模式
模板方法模式是一种行为型设计模式,它定义了一个算法的骨架,并允许子类为某些步骤提供具体的实现。该模式的核心思想是定义一个操作中的算法骨架,而将一些步骤延迟到子类中。模板方法使得子类可以在不改变算法结构的情况下重新定义算法的某些步骤。目的定义算法骨架:定义算法的步骤顺序,确保算法的一致性和完整性。封装变化:将不变的部分与可能变化的部分分离,以便于维护和扩展。重用代码:允许子类重用父类中的通用逻辑,减少重复代码。如何工作定义模板方法:在基类中定义一个模板方法,它包含算法的步骤顺序。抽象操作。原创 2024-08-29 08:59:36 · 657 阅读 · 0 评论 -
设计模式专题之C语言-抽象工厂模式
抽象工厂模式是一种创建型设计模式,它提供了一个接口用于创建一系列相关或相互依赖的对象,而无需指定它们具体的类。在抽象工厂模式中,我们创建对象集合,这些对象通常属于同一“系列”或者有着共同的主题,而不需要知道具体是哪些类生成了这些对象。抽象工厂模式的应用场景当系统需要独立于它的产品创建、组合和表示时。当系统要由多个产品系列中的一个来配置时。当添加新的产品系列时,整个系统不会受到影响。抽象工厂:提供一个接口,用于创建一组相关或相互依赖的对象,而不需要指定这些对象所属的具体类。具体工厂。原创 2024-08-29 08:48:34 · 1108 阅读 · 0 评论 -
设计模式专题之C语言-外观模式
在软件工程中,设计模式是一种被广泛采用的解决特定问题的方法。其中,“外观模式”(Facade Pattern)是一种结构型设计模式,它的主要目的是提供一个统一的接口来访问一系列复杂的子系统。这使得客户端与子系统的内部细节解耦,并简化了客户端的使用。外观模式通过提供一个高层次的接口,让子系统更容易使用。它不改变子系统的功能,而是为它们提供了一个简单明了的界面。当一个系统过于复杂,需要一个简化的接口。当用户只需要使用一个子系统的一个小部分功能。当你需要降低子系统与其他组件之间的耦合度。优点。原创 2024-08-29 08:47:10 · 845 阅读 · 0 评论 -
设计模式专题之C语言-装饰者模式
装饰者模式(Decorator Pattern)是一种结构型设计模式,它允许向对象动态地添加新的功能。这种模式通过创建一个装饰类来包装原有的类,可以在不修改原类的基础上给类添加新的职责。适用场景当需要扩展一个类的功能或者给一个类添加附加职责时,装饰者模式提供了一种比继承更加灵活的方式。当不能采用生成子类的方法进行扩充时,一种情况是系统中存在大量的独立扩展,为支持每一种组合将产生大量的子类,使得子类数目呈爆炸性增长。原创 2024-08-29 08:45:20 · 439 阅读 · 0 评论 -
设计模式专题之C语言-享元模式
享元模式(Flyweight Pattern)是一种用于减少对象数量从而减少内存使用的设计模式。它的核心思想是尽可能地重用已创建的对象,而不是每次需要时都创建新的实例。这种模式尤其适用于需要大量相似对象的场景,通过共享这些对象的公共状态来节省资源。享元模式是一种旨在减少对象数量从而降低内存使用量的设计模式。它通过共享对象的公共状态来实现这一目标,特别适合于需要大量相似对象的场景。关键点对象复用:通过复用已存在的对象,而不是每次都创建新对象。内外状态分离:内在状态:对象的不变部分,可以被多个对象共享。原创 2024-08-28 16:27:15 · 870 阅读 · 0 评论 -
设计模式专题之C语言-代理模式
代理模式是一种结构型设计模式,它允许你提供一个替代对象来控制对某个对象的访问。这种模式在需要增加额外职责而又不想修改原始类的情况下非常有用。这个简单的例子展示了如何使用代理模式来控制对稀有物品的访问。代理模式在这里充当了一个门卫的角色,确保只有符合条件的玩家才能获取特定的物品。这种方式可以轻松地扩展,例如添加更多的条件或处理更复杂的逻辑,而不需要更改真实的物品获取逻辑。原创 2024-08-28 16:19:01 · 415 阅读 · 0 评论 -
设计模式专题之C语言-组合模式
组合模式是一种结构型设计模式,它允许你将对象组合成树形结构以表示部分-整体层次结构。组合模式使得客户端能够一致地处理单个对象和组合对象。这种模式在需要处理具有层次结构的数据时非常有用。组合模式是一种结构型设计模式,它的主要目的是将对象组合成树形结构以表示“部分-整体”的层次结构。这种模式使得客户端能够一致地处理单个对象和组合对象。关键点抽象接口:定义了所有对象(无论是单个对象还是组合对象)的共同行为。叶子对象:表示组成结构的基本组件,不能包含其他对象。原创 2024-08-28 16:10:54 · 751 阅读 · 0 评论 -
设计模式专题之C语言-桥接模式
桥接(Bridge)设计模式是一种结构型设计模式,它的目的是将抽象与其实现分离,使得两者可以独立地变化。这种模式特别适用于系统需要支持多种不同的平台或环境,并且这些平台或环境可能经常发生变化的情况。在C语言中实现桥接模式需要考虑如何使用指针和函数指针来模拟对象的多态性。下面我们将通过一个简单的例子来解释桥接模式的概念及其在C语言中的应用。桥接模式是一种结构型设计模式,它允许将抽象部分与它的实现部分分离,从而使它们可以独立地变化。原创 2024-08-28 16:02:31 · 915 阅读 · 0 评论 -
设计模式专题之C语言-原型模式
原型模式(Prototype Pattern)是一种创建型设计模式,它允许一个对象通过复制现有的对象来创建新对象,而不是通过 new 关键字创建新对象。这种模式可以提高性能和复用性,特别是在创建新对象需要复杂的初始化或者资源密集型操作时。什么是原型模式?在原型模式中,一个类声明了一个克隆方法,用于创建自己的副本。这些副本是原始对象的浅拷贝或深拷贝。浅拷贝只复制对象本身,而深拷贝会递归地复制对象及其内部的所有引用。为什么使用原型模式?原创 2024-08-28 15:53:32 · 819 阅读 · 0 评论 -
设计模式专题之C语言-建造者模式
建造者模式是一种创建型设计模式,它允许你逐步构建一个复杂的对象,而无需让构造过程与表示层耦合。这样做的好处是你可以使用相同的构建过程创建不同的表示。建造者模式是一种非常实用的设计模式,尤其适用于需要创建具有复杂内部结构的对象的情况。在本例中,我们通过C语言实现了一个简单的汽车建造过程,展示了建造者模式如何帮助我们构建复杂对象的同时保持代码的整洁和可维护性。这种方法不仅适用于汽车这样的实体对象,也可以应用于任何需要逐步构建复杂对象的场景。原创 2024-08-28 15:30:16 · 1169 阅读 · 0 评论 -
设计模式专题之C语言-适配器模式
适配器模式(Adapter Pattern)是一种结构型设计模式,旨在将一个类的接口转换为客户端希望的另一个接口。适配器模式使得原本由于接口不兼容而不能一起工作的类可以协同工作。简单来说,它就像一个“适配器”,可以让本来不兼容的插头和插座之间建立联系。原创 2024-08-22 09:50:06 · 965 阅读 · 0 评论 -
设计模式专题之C语言-工厂方法模式
工厂方法模式是一种创建型设计模式,它定义了一个接口用于创建对象,但允许子类决定实例化哪一个类。这种模式让一个类的实例化延迟到其子类,从而实现了解耦和扩展性。在 C 语言中,由于没有类的概念,工厂方法模式通常通过函数指针和结构体来实现。我们将通过一个简单的例子来说明这一点。工厂方法模式在 C 语言中的实现尽管比在面向对象语言中要复杂一些,但它依然能够有效地帮助我们实现对象的创建和管理。通过使用函数指针和结构体,我们能够在 C 语言中实现这一经典的设计模式。原创 2024-08-22 09:32:38 · 471 阅读 · 2 评论 -
设计模式专题之C语言-单例模式
单例模式(Singleton Pattern)是设计模式中的一种,用于确保一个类只有一个实例,并提供一个全局访问点。在面向对象编程语言(如C++或Java)中,单例模式常用于限制某个类的实例数量,使得在整个应用程序中该类的实例唯一。在C语言中,我们可以通过一些巧妙的方式来实现这一模式,虽然C语言本身并不支持面向对象的特性。单例模式是非常有用的设计模式之一,特别是在需要控制资源的使用、确保某些操作的全局一致性时。在C语言中,虽然没有类的概念,但我们可以通过静态变量和适当的内存管理技巧来实现单例模式。原创 2024-08-22 08:45:31 · 1133 阅读 · 0 评论 -
设计模式专题之C语言-三大属性
继承:通过结构体嵌套来模拟继承关系。封装:通过将结构体和相关函数分开并使用static关键字隐藏实现细节来实现封装。多态:通过在结构体中使用函数指针来实现不同的行为。尽管C语言没有直接的面向对象特性,通过以上技巧,可以在C语言中实现类似于OOP的设计模式和机制。原创 2024-08-21 16:06:38 · 884 阅读 · 0 评论 -
设计模式专题之C语言-开篇
在软件开发中,设计模式是一种经过验证的解决方案,用于应对常见的设计问题。在面向对象编程语言中,如C++或Java,设计模式的实现通常利用类和继承等特性。然而,在C语言中,由于缺乏类和继承机制,设计模式的实现需要依赖结构体、函数指针和全局变量等特性。尽管如此,许多经典设计模式仍然可以在C语言中有效地实现,并为程序设计提供有力的支持。编程中的设计模式通常分为三大类:创建型模式、结构型模式和行为型模式。这些模式提供了可重用的解决方案,帮助开发人员在面临常见的设计问题时能更高效地设计系统。原创 2024-08-21 15:48:35 · 830 阅读 · 0 评论