设计模式系列漫谈
鲁迅先生说过:“人最害怕遇两个难关,一是歧途,一是穷途,对于很多人来说,歧途并不可怕,可怕的是走到了穷途,没有退路,也没有去路”。迷途知返的羔羊必定会得到丰盛的晚餐。一个优秀的软件并不是一蹴而就的,必须经过设计师千锤百炼而成。在软件开发过程中,我们可能会走上一条不合理的、甚至是错误的路,这并不可怕,因为我们可以在对需求的不断深入理解之后,慢慢改善设计、完善设计。但是,如果我们不运用正确的、科学的方法而进行简单设计,那么这个软件肯定缺乏良好的扩展性、灵活性和可复用性。同样地,如果我们过度设计也会使软件走上一条不归路。待到需求变化时,我们就只能在丛中嚎叫。
设计模式(Design pattern)是对面向对象设计中反复出现的问题的解决方案。这个术语是在1990年代由Erich Gamma等人从建筑设计领域引入到计算机科学中来的。这个术语的含义目前还存有争议。算法不是设计模式,因为算法致力于解决问题而非设计问题。设计模式通常描述了一组相互紧密作用的类与对象。设计模式提供一种讨论软件设计的公共语言,使得熟练设计者的设计经验可以被初学者和其他设计者掌握。设计模式还为软件重构提供了目标。
设计模式是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。
毫无疑问,设计模式于己于他人于系统都是多赢的,设计模式使代码编制真正工程化,设计模式是软件工程的基石。
GOF的“设计模式”是第一次将设计模式提升到理论高度,并将之规范化,提出了23种基本设计模式,自此,在可复用面向对象软件的发展过程中,新的大量的设计模式不断出现。
本系列课程将通过故事形式阐述软件设计模式的原理。若有不当,肯定批评指证。
第10章 设计模式系统漫谈之十 - 适配器模式
第11章 设计模式系列漫谈之十一 - 桥接模式
第12章 设计模式系列漫谈之十二 - 职责链模式
第13章 设计模式系列漫谈之十三 - 访问者模式
待续...
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· .NET周刊【3月第1期 2025-03-02】
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· [AI/GPT/综述] AI Agent的设计模式综述