软件开发设计模式
文章平均质量分 92
设计模式是在软件开发中,针对特定问题的通用、可重用的解决方案。设计模式不是具体的代码实现,而是一种思想和指导原则,帮助开发人员解决常见的设计问题。
拼搏的菜鸟
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
12_外观模式
外观模式是一种结构型设计模式,它为复杂子系统提供统一的高层接口,简化客户端调用。该模式包含外观类(提供统一接口)和子系统类(实现具体功能),通过外观类将客户端请求委派给子系统处理。主要优点包括降低系统耦合度、简化客户端调用、隐藏实现细节;缺点可能造成外观类过于复杂,且子系统变更需修改外观类。适用于需要为复杂系统提供简单接口、减少系统耦合度的场景。原创 2026-04-10 09:00:00 · 488 阅读 · 0 评论 -
11_代理模式
代理模式摘要 代理模式是一种结构型设计模式,通过创建代理对象来控制对真实对象的访问。它包含三个核心角色:抽象主题接口、真实主题实现类和代理类。代理模式适用于需要添加访问控制、延迟加载或远程访问等场景。 实现方式上,代理类持有真实对象的引用,并在转发请求前后插入额外逻辑(如权限检查、日志记录)。该模式遵循开闭原则,能在不修改真实对象的情况下扩展功能。 主要优点包括解耦客户端与真实对象、实现延迟加载和访问控制;缺点是增加了系统复杂度,可能影响性能。代码示例展示了代理如何包装真实对象,在请求处理前后添加额外操作。原创 2026-04-10 09:00:00 · 302 阅读 · 0 评论 -
10_装饰器模式
装饰器模式是一种动态扩展对象功能的结构型设计模式,允许在不修改原有对象的情况下添加额外职责。通过组合而非继承实现功能扩展,包含组件、具体组件、装饰器和具体装饰器等角色。UML结构展示了装饰器与组件的聚合关系及多级嵌套能力。代码示例演示了如何通过装饰器层层包装组件对象。该模式的优点包括动态扩展、避免继承爆炸、符合开放封闭原则,但可能增加系统复杂性并使代码难以理解。适用于需要灵活添加或移除对象功能的场景。原创 2026-04-09 09:00:00 · 423 阅读 · 0 评论 -
09_适配器模式
适配器模式是一种结构型设计模式,用于解决接口不兼容问题。它通过转换接口使原本不兼容的类能够协同工作,主要有类适配器(继承实现)和对象适配器(组合实现)两种方式。该模式适用于复用现有类但接口不匹配的场景,优点包括提高系统扩展性和代码复用性,缺点可能增加系统复杂度和耦合度。代码示例展示了两种适配器实现方式,通过将Adaptee的specificRequest()适配为Target的request()接口。原创 2026-04-09 09:00:00 · 294 阅读 · 0 评论 -
08_原型模式
摘要:原型模式是一种通过复制现有对象来创建新对象的设计模式,避免了复杂的实例化过程。它适用于创建成本高或与现有对象相似的新对象场景。实现包含原型接口、具体原型类和客户端三个角色,通过clone()方法复制对象。该模式优点是快速创建、动态增减对象,缺点是实现复杂且可能引发循环引用问题。代码示例展示了C++中如何实现原型模式。原创 2026-04-08 09:00:00 · 204 阅读 · 0 评论 -
07_建造者模式
建造者模式是一种创建型设计模式,用于分离复杂对象的构建过程和表示。它适用于创建具有复杂内部结构或多属性的对象,通过抽象建造者定义接口,具体建造者实现构建逻辑,指挥者控制构建顺序。UML图展示了产品、建造者和指挥者之间的关系。代码示例演示了如何使用C++实现建造者模式,创建不同表示的产品。优点是构建与表示分离、控制精细、符合单一职责原则;缺点是增加系统复杂度,产品结构变化时需修改所有建造者类。原创 2026-04-08 09:00:00 · 227 阅读 · 0 评论 -
06_单例模式
单例模式是一种确保类仅有一个实例的设计模式,提供全局访问点。适用于需要唯一实例协调组件、控制资源访问或避免高成本重复创建的场景。常见实现方式包括饿汉式、懒汉式、双重检查锁定、静态内部类等。代码示例展示了使用C++11 std::call_once的线程安全实现。该模式优点是确保唯一实例和全局访问,但缺点是增加耦合度、测试困难及可能的内存泄漏问题。原创 2026-04-07 09:00:00 · 353 阅读 · 0 评论 -
05_抽象工厂模式
抽象工厂模式是一种创建型设计模式,用于创建相关对象的家族而不指定具体类。它包含抽象产品、具体产品、抽象工厂和具体工厂等角色,通过工厂接口创建相互兼容的产品系列。该模式优点在于实现产品族创建与使用的分离,保证产品兼容性,但添加新产品类型时需要修改所有工厂实现,增加了系统复杂性。代码示例展示了如何通过抽象工厂创建不同系列的产品对象,如ProductA1/B1和ProductA2/B2,这些产品由各自的工厂类(ConcreteFactory1/2)创建,确保同一工厂创建的产品能够协同工作。原创 2026-04-07 09:00:00 · 329 阅读 · 0 评论 -
04_工厂方法模式
工厂方法模式是一种创建型设计模式,通过定义创建对象的接口让子类决定实例化哪个类。该模式包含产品接口、具体产品、工厂接口和具体工厂四个角色,实现了对象创建和使用的分离,符合开放封闭原则。主要优点包括解耦对象创建和使用、便于扩展新产品类型,但也存在增加代码复杂性和客户端需知晓具体工厂类型的缺点。适用于需要灵活创建对象或希望将创建过程委托给子类的场景,如示例代码展示了通过不同工厂创建不同类型产品的实现方式。原创 2026-04-06 12:06:16 · 200 阅读 · 0 评论 -
03_简单工厂模式
简单工厂模式是一种创建型设计模式,通过工厂类集中管理对象创建逻辑,使客户端无需了解具体实现细节。该模式包含产品接口、具体产品和工厂类三个角色,适用于对象类型较少且稳定的场景。优点是实现创建与使用分离,缺点是工厂类职责过重,添加新产品需修改工厂代码,违反开放封闭原则。示例代码展示了如何通过工厂类创建不同产品实例。原创 2026-04-06 12:05:14 · 198 阅读 · 0 评论 -
02_设计模式最佳实践
本文系统介绍了23种常用设计模式的选择原则、应用场景和实现建议,包括创建型、结构型和行为型三大类。文章强调应根据具体问题选择合适的设计模式,考虑系统可扩展性、性能和团队熟悉度,避免过度设计和机械应用。通过配置管理、排序算法和事件系统等实际案例,展示了单例模式、策略模式和观察者模式的具体应用。同时指出了过度使用设计模式、机械应用、忽略变体、不考虑性能和团队熟悉度等常见误区。设计模式是提高代码质量和可维护性的重要工具,但需合理运用才能发挥其真正价值。原创 2026-04-05 16:28:02 · 542 阅读 · 0 评论 -
01_设计模式概述
设计模式是软件开发中针对常见问题的可重用解决方案,分为创建型、结构型和行为型三大类。创建型模式处理对象创建(如工厂、单例模式),结构型模式处理对象组合(如适配器、装饰器模式),行为型模式处理对象交互(如观察者、策略模式)。设计模式能提高代码重用性、可维护性和可扩展性,促进团队协作。应用时应避免过度设计,理解模式意图,灵活选择合适模式。掌握设计模式有助于开发更优雅高效的软件系统。原创 2026-04-05 16:24:11 · 366 阅读 · 0 评论
分享