![](https://img-blog.csdnimg.cn/direct/eb720acd772c4249b9c994df2489f1ea.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
设计模式:代码的艺术与智慧
文章平均质量分 90
深度解析23种经典设计模式原理与实战场景。从单例、工厂到策略、装饰器,通过生动案例揭示面向对象设计的核心奥秘;探讨函数式编程中的高阶函数、柯里化等现代设计思想;融会贯通,助您提升代码可读性、扩展性和复用率,打造优雅且易于维护的高质量软件系统。
球球不吃虾
合抱之木,生于毫末;九层之台,起于垒土;千里之行,始于足下。
展开
-
第一篇 设计模式引论 - 探索软件设计的智慧结晶
设计模式,这个术语最初在建筑领域被广泛使用,用来描述在建筑设计中反复出现的问题及其解决方案。在软件工程中,设计模式同样指的是在软件设计过程中反复出现的、经过验证的最佳实践和解决方案。1994年,由Erich Gamma、Richard Helm、Ralph Johnson和John Vlissides四位作者(被称为"四人组"或GoF)合作出版了《设计模式:可复用面向对象软件的基础》一书,这是设计模式在软件工程领域正式确立的里程碑。原创 2023-12-29 16:46:04 · 677 阅读 · 0 评论 -
第二篇 创建型设计模式 - 灵活、解耦的创建机制
创建型设计模式关注对象的创建过程,旨在提供灵活、解耦的创建机制。以下是五种常见的创建型设计模式的详解及其应用场景。原创 2023-12-29 16:56:09 · 1084 阅读 · 0 评论 -
第三篇 结构型设计模式 - 简化复杂系统的结构
结构型设计模式关注类和对象的组合方式,旨在简化复杂系统的结构,提高代码的可重用性和可维护性。以下是七种常见的结构型设计模式的详解及其应用场景。适配器模式将一个类的接口转换成客户希望的另一个接口,使得原本由于接口不兼容而不能一起工作的类可以协同工作。例如,在编程中,可以创建一个适配器来将一个老版本的库接口转换为新版本的接口,以便在新项目中继续使用老库的功能。装饰器模式动态地给一个对象添加一些额外的职责。装饰器提供了比继承更加灵活的方式来扩展对象的功能。原创 2023-12-29 17:01:09 · 1124 阅读 · 0 评论 -
第四篇 行为型设计模式 - 灵活定义对象间交互
行为型设计模式关注对象之间的交互和职责分配,旨在定义对象间的高效、灵活的通信机制。以下是十一种常见行为型设计模式的详解及其应用场景。原创 2024-01-02 09:46:21 · 1154 阅读 · 0 评论 -
第五篇 设计模式的选择和应用 - 智慧选择与合理实践
总结来说,选择和应用设计模式的关键在于深入理解其原理,把握好适用的时机,并结合实际情况灵活运用,最终目的是为了提升软件的可读性、可维护性和可扩展性,而非盲目追求理论上的完美设计。因此,在决定采用某个设计模式时,应综合评估该模式在当前场景下的价值,包括是否解决了特定问题、是否会带来其他潜在问题以及未来可能的需求变化。:对于多种可能适用的设计模式,进行对比分析,考虑每种模式带来的优缺点。由于文本交互的限制,下面将简要说明如何使用组合模式和观察者模式来实现电商购物车模块,并给出部分伪代码以展示关键逻辑。原创 2024-01-04 17:06:43 · 1178 阅读 · 1 评论 -
第六篇 再谈观察者模式的具体应用,如监听一个class其中一个属性,如websocket中onmessage的实现
在JavaScript中,观察者模式是一种设计模式,它定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象,当主题对象状态发生变化时,所有依赖于它的观察者都会得到通知并被自动更新。观察者模式通常包含以下几个角色:Subject(主题):维护一系列的观察者,提供注册和删除观察者的方法,并在状态发生改变时通知所有注册的观察者。Observer(观察者):定义一个更新接口,使得在接收到主题通知时能够执行相应的操作。javascriptCopy code// 主题对象// 存储观察者。原创 2023-12-22 17:16:37 · 1147 阅读 · 0 评论