news 2026/4/13 9:30:09

Head First设计模式(十三) 设计原则 现实世界中的模式

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Head First设计模式(十三) 设计原则 现实世界中的模式

设计模式:

模式是在某个上下文中针对某个问题的解决方案。

上下文指某个模式适用的情况。这应该是一种会不断出现的情况。

问题指在此上下文中你想要达到的目标,但也要考虑该上下文中发生的任何约束。

解决方案就是你所追求的东西:一个通用的设计,所有人都可以用来解决目标和约束集。

组织设计模式:

根据模式的目标分类:

创建型模式牵涉到对象实例化,这类模式都提供一种将客户从需要实例化的对象中解耦的方式。

行为型模式都涉及类和对象如何交互,以及分配责任。

结构型模式让你组合类或对象得到更大的结构。

根据模式处理的是类还是对象分类:

类模式描述类之间的关系如何通过继承定义。类模式中的关系是在编译时建立的。

对象模式描述对象之间的关系,而且对象模式主要通过组合定义。对象模式中的关系通常在运行时创建,更加动态和有弹性。

用模式思考:

  1. 保持简单
  2. 设计模式不是万灵丹;事实上,什么丹都不是!
  3. 你知道什么时候需要模式
  4. 重构时间就是模式时间!
  5. 拿掉不是真正需要的。不要害怕从你的设计中移除设计模式。
  6. 如果你现在不需要,就别做。

模式的心智:

初学者到处使用模式

随着学习的进程,中阶者的心智开始能看到什么地方需要模式什么地方不需要

悟道者的心智能够看到模式在何处能够自然融入

共享词汇的五种方式:

  1. 在设计会议上
  2. 在其他开发人员
  3. 在架构文档中
  4. 在代码注释以及命名习惯上
  5. 将志同道合的开发人员集合在一起

模式动物园:

建筑模式:用来创建生气勃勃的建筑,城镇和城市的架构。这也是模式开始的地方。

应用模式:是创建系统级架构的模式。许多多层架构都属于这个类目。

领域特定模式:关注领域特定的问题,像并发系统或实时系统。

业务流程模式:描述业务,顾客和数据之间的交互,可以应用于如何高效决策并沟通决策等问题。

组织模式:描述了人类组织的结构以及运作。大多数工作聚焦于生产和/或支持软件的组织。

用户界面设计模式:致力于如何设计交互式软件程序的问题。

反模式:

反模式告诉你如何从问题到达一个坏的解决方案。

  1. 反模式告诉你为什么坏方案会有吸引力。
  2. 反模式告诉你为什么这个解决方案从长远来看是不好的。
  3. 反模式向你建议能提供好的解决方案的其他适合模式。

要点:

  1. 让设计模式出现在你的设计中,而不是为了使用而使用。
  2. 设计模式并非僵化的教条;可以采纳或调整以符合你的需要。
  3. 总是使用满足需要的最简单解决方案,即使方案里没有包含模式。
  4. 学习设计模式的类目,可以帮你自己熟悉模式以及它们之间的关系。
  5. 模式的分类(或类目)为模式提供了分组,如果分组对你有帮助,就使用。
  6. 成为一名模式作者,你需要付出努力:这需要时间和耐心,还必须乐意做大量的精化工作。
  7. 记住:你所遇到的大多数的模式都是已有模式的改编,不是新模式。
  8. 建立你的团队的共享词汇,这是使用模式最大的好处之一。
  9. 和其他社群类似,模式社群也有自己的行话。别让这些行话挡住你的路,读完了这本书,现在你已经知道大多数行话了。
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/12 14:00:28

LangFlow Zipkin兼容模式降低迁移成本

LangFlow Zipkin兼容模式降低迁移成本 在AI应用从实验室走向生产线的过程中,一个反复出现的挑战是:如何让数据科学家设计的“聪明模型”在真实系统中依然表现可靠?许多团队都经历过这样的场景——原型阶段流畅运行的对话机器人,一…

作者头像 李华
网站建设 2026/4/12 14:00:26

LangFlow ELK栈整合教程:构建完整日志体系

LangFlow 与 ELK 栈整合:打造可观察的 AI 工作流日志体系 在企业级人工智能系统日益复杂的今天,一个核心挑战正摆在开发者面前:如何在快速构建 AI 应用的同时,确保其运行过程是透明、可控且可追溯的?传统的代码驱动开发…

作者头像 李华
网站建设 2026/4/12 14:00:24

新手教程:用电路仿真软件搭建整流电路

从零开始:用LTspice亲手搭建一个桥式整流电源你有没有想过,手机充电器里那个“黑盒子”是怎么把墙上的交流电变成稳定的直流电的?其实,它的核心就是一个整流电路——而今天,我们不用焊台、不接示波器,只用一…

作者头像 李华
网站建设 2026/4/12 14:00:22

LangFlow Nagios插件检测服务健康状态

LangFlow Nagios插件检测服务健康状态 在现代AI系统日益复杂的背景下,大语言模型(LLM)应用的开发与运维正面临双重挑战:一方面,快速迭代和跨团队协作要求更高效的原型设计工具;另一方面,生产环境…

作者头像 李华
网站建设 2026/4/12 14:00:20

触想工业一体机方案破解自助咖啡机海外落地难题

一、行业发展背景受人力成本高企及无接触模式的影响,咖啡消费正经历一场数字化变革,以自助咖啡机为代表的无人零售终端正在悄然兴起,凭借低人力成本、灵活部署以及全天不间断的运营效率,自助咖啡机可无缝嵌入智慧城市生活的多元场…

作者头像 李华
网站建设 2026/4/12 16:39:55

29、深入了解 Exchange Server 2007 统一消息及相关功能

深入了解 Exchange Server 2007 统一消息及相关功能 1. 统一消息概述 统一消息(Unified Messaging)是 Exchange Server 2007 中的一项重要功能,它将语音、传真和电子邮件消息整合在一起,实现了不同类型消息在一处集中访问。用户可以通过普通电话访问自己的邮箱,还能利用…

作者头像 李华