
手把手教你学设计模式
文章平均质量分 78
《手把手教你学设计模式》是一个旨在帮助编程爱好者或有一定编程经验的人在短时间内掌握设计模式基本用法和核心概念的专栏教程。设计模式是一种在特定情况下解决软件设计问题的标准化方案,它能帮助开发者编写出更灵活、可扩展和可维护的代码。
小蘑菇二号
某大厂在职资深嵌入式软件工程师,商业合作&交流学习可私信联系
展开
-
设计模式(十五)--装饰模式
c深色版本35public:9};装饰模式通过动态地添加职责来扩展对象的功能,而无需通过继承来改变原有的结构。这种模式非常适合需要在运行时灵活地添加功能的场景。原创 2024-09-10 10:36:42 · 404 阅读 · 0 评论 -
设计模式(八)--装饰模式
c深色版本45// 组件接口912}装饰模式通过动态地给对象添加职责,允许在不修改现有类的基础上扩展功能。这种模式特别适合需要在运行时动态添加功能的情况,同时也使得代码更加灵活和易于扩展。在设计系统时,可以根据需要选择是否使用装饰模式来增强系统的灵活性和可扩展性。原创 2024-09-09 14:08:24 · 345 阅读 · 0 评论 -
设计模式--迭代器模式
java深色版本4}java深色版本3}java深色版本36 }710 }1115 }16}迭代器模式通过提供统一的遍历接口,使得遍历集合变得更加灵活和安全。它允许我们在不暴露集合内部实现的情况下遍历集合中的元素,从而增强了代码的封装性和安全性。在需要提供多种遍历方式或需要隐藏集合内部实现的情况下,迭代器模式是一个很好的选择。原创 2024-09-07 20:35:28 · 484 阅读 · 0 评论 -
设计模式(十二)--模板方法模式
抽象方法是由子类实现的方法,代表算法中的可变部分。这些方法在基类中声明为抽象方法,没有具体的实现。子类必须提供这些方法的具体实现。通过这种方式,子类可以控制算法的某些具体细节,同时保持算法整体结构的一致性。模板方法模式通过定义一个算法的骨架,并将某些步骤留给子类实现,使得子类可以在不改变算法结构的情况下重新定义这些步骤。这有助于减少代码重复,并提高代码的可维护性和扩展性。原创 2024-09-09 18:54:46 · 1585 阅读 · 0 评论 -
设计模式--原型模式
java深色版本3}原型模式通过克隆已有的对象来创建新的对象实例,适用于需要创建大量相似对象的场景。通过使用原型模式,可以避免复杂的构造过程,并且提高性能。然而,在使用原型模式时需要注意对象的复制代价以及是否需要实现深拷贝逻辑。原创 2024-09-07 20:34:22 · 355 阅读 · 0 评论 -
c语言设计模式(三)--简单工厂模式
简单工厂模式通过工厂类来集中管理和创建对象,简化了客户端代码。这种模式适用于创建的对象较少,且对象的创建逻辑相对简单的情况。在 C 语言中实现简单工厂模式,通常需要手动管理内存(分配和释放),并且通过函数指针或者其他手段来模拟面向对象的多态特性。在这个示例中,我们使用简单工厂模式来创建不同的运算操作对象。简单工厂模式通过工厂类来集中管理和创建对象,简化了客户端代码。这种模式适用于创建的对象较少,且对象的创建逻辑相对简单的情况。原创 2024-09-09 19:03:41 · 1078 阅读 · 0 评论 -
设计模式(十一)--责任链模式
责任链模式是一种设计模式,它允许请求沿着处理者链传递,直到其中一个处理者处理它为止。这种模式减少了请求发送者与接收者的耦合关系,因为发送者不需要知道是哪一个接收者处理其请求,接收者也不需要知道请求来自何方。每个接收者包含对其下一个接收者的引用,因此请求可以沿着这条链传递,直到被处理或到达链的末尾。原创 2024-09-09 18:52:40 · 201 阅读 · 0 评论 -
设计模式(九)--享元模式
c深色版本47} Circle;811}享元模式通过共享部分数据来减少内存消耗,并且适用于需要创建大量相似对象的场景。在设计系统时,如果发现有大量的细粒度对象,并且其中有很多可以共享的部分,可以考虑使用享元模式来优化内存使用和提高性能。原创 2024-09-09 14:09:25 · 819 阅读 · 0 评论 -
设计模式(八)--状态模式
c深色版本46 RED,7 YELLOW,8 GREEN10141722} State;2327313437。原创 2024-09-09 10:31:40 · 271 阅读 · 0 评论 -
设计模式(五)--策略模式
java深色版本3}java深色版本36 }710 }1114 }15}策略模式通过将算法封装在独立的类中,使得算法的选择和更改变得更加灵活。在需要根据不同的条件选择不同行为的情况下,策略模式是一个很好的选择。此外,策略模式还可以简化客户端代码,因为客户端只需知道如何使用策略接口,而不需要关心具体的算法实现。原创 2024-09-07 20:31:26 · 344 阅读 · 0 评论 -
设计模式(七)--代理模式
c深色版本36} Image;710}代理模式通过为真实对象提供一个代理对象来控制对真实对象的访问。它适用于需要在访问对象时附加额外操作的情况,或者需要延迟加载资源的情况。代理模式可以帮助我们更好地组织代码,并提供更强大的控制机制。在设计系统时,可以根据需要选择是否使用代理模式来增强系统的灵活性和可扩展性。原创 2024-09-09 10:39:36 · 813 阅读 · 0 评论 -
设计模式(十)--外观模式
c深色版本34// 音频加载器子系统811}1217}1819// 音频解码器子系统2326}2732}3334// 音频播放器子系统3841}4247}外观模式通过提供一个统一的接口来简化子系统的使用,适用于需要简化复杂子系统接口的场景。在设计系统时,如果发现子系统的接口过于复杂,难以使用,可以考虑使用外观模式来简化接口,提高代码的可读性和可维护性。原创 2024-09-09 14:12:30 · 982 阅读 · 0 评论 -
设计模式(三)--观察者模式
java深色版本3}java深色版本38}原创 2024-09-07 20:29:57 · 409 阅读 · 0 评论 -
设计模式(十四)--组合模式
c深色版本35public:10};原创 2024-09-10 10:33:09 · 320 阅读 · 0 评论 -
设计模式(十三)--命令模式
命令模式通过将请求封装成一个对象,实现了请求的发出者与请求的执行者的解耦。这种模式提高了系统的灵活性,使得你可以更方便地管理请求,支持撤销操作,并且可以更容易地扩展新的命令。原创 2024-09-09 18:57:58 · 392 阅读 · 0 评论 -
C语言中常用或可以模拟实现的设计模式介绍(二)
c深色版本46 RED,7 YELLOW,8 GREEN10141722} State;2327313437状态模式通过将与状态相关的所有行为封装在独立的状态类中,使得对象可以在运行时根据内部状态的变化改变其行为。这种模式非常适合用于实现具有多种状态的对象,并且在状态转换时需要执行特定的操作。在使用状态模式时,应确保状态的定义和转换逻辑清晰,并且避免过多的状态导致设计复杂。原创 2024-09-09 10:34:57 · 1191 阅读 · 0 评论 -
设计模式(六)--备忘录模式
c深色版本3// 存储状态6} Memento;78// 创建备忘录13}1415// 释放备忘录18}备忘录模式通过存储和恢复对象的状态,使得对象可以在不同状态之间切换,而无需破坏封装性。这种模式非常适合用于实现撤销功能或需要保存多个状态的历史记录。在使用备忘录模式时,需要注意合理管理内存,避免不必要的内存消耗。原创 2024-09-09 10:28:36 · 483 阅读 · 0 评论 -
设计模式--桥接模式
java深色版本4}java深色版本36 }79}java深色版本4 }510 }11 }12}1317 }1823 }24 }25}桥接模式通过将抽象和实现分离,使得两者可以独立变化。这种方式特别适用于需要根据多个维度进行变化的场景。通过分离抽象和实现,桥接模式提高了代码的可扩展性和灵活性,同时也降低了系统的耦合度。原创 2024-09-07 20:33:16 · 593 阅读 · 0 评论