《Head First设计模式》 读书笔记14 真实世界中的模式
《Head First设计模式》 读书笔记14 真实世界中的模式
定义设计模式
模式是在某情境(context)下,针对某问题的某种解决方案。
情境就是应用某个模式的情况。这应该是会不断出现的情况。
问题就是你想在某情境下达到的目标,但也可以是某情境下的约束。
解决方案就是你所追求的:一个通用的设计,用来解决约束、达到目标。
设计模式模板
名称
意图 Intent
动机 Motivation
适用性 Applicability
结构 Structure
参与者 Participants
协作 Collaborations
结果 Consequences
组织设计模式
最广为人知的分类方式,根据模式的目标分成三个不同类目:创建型、行为型和结构型。
创建型模式涉及到将对象实例化,这类模式都提供一个方法,将客户从所需要实例化的对象中解耦。
行为型模式,涉及到类和对象如何交互及分配职责。
结构型模式可以让你把类或对象组合到更大的结构中。
另一种分类方式:模式所处理的是类或对象。
类模式描述类之间的关系如何通过继承定义。类模式的关系是在编译时建立的。
对象模式描述对象之间的关系,而且主要是利用组合定义。对象模式的关系通常在运行时建立,而且更加动态、更有弹性。
反模式
反模式(Anti-Pattern)看起来总像是一个好的解决方案,但是当它真正被采用后,就会带来麻烦。
通过将反模式归档,我们能够帮助其他人在实现它们之前,分辨出不好的解决方案。
像模式一样,有许多类型的反模式,包括了开发反模式、OO反模式、组织反模式和领域特定反模式。
设计模式的使用
让设计模式自然而然地出现在你的设计中,而不是为了使用而使用。
设计模式并非僵化的教条,你可以依据自己的需要采用或调整。
总是使用满足需要的最简单的解决方案,不管它用不用模式。
请牢记:你所遇到的大多数的设计模式都是现有模式的变体,而非新的设计模式。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· Obsidian + DeepSeek:免费 AI 助力你的知识管理,让你的笔记飞起来!
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了