一个模式的四个基本要素

简介:   设计模式使人们可以更加简单方便地复用成功的设计和体系结构。将已证实的技术表述成设计模式也会使新系统开发者更加容易理解其设计思路。  1. 模式名称(pattern name)  一个助记名,它用一两个词来描述模式的问题、解决方案和效果。

  设计模式使人们可以更加简单方便地复用成功的设计和体系结构。将已证实的技术表述成设计模式也会使新系统开发者更加容易理解其设计思路。

  1. 模式名称(pattern name)

  一个助记名,它用一两个词来描述模式的问题、解决方案和效果。命名一个新的模式增加了我们的设计词汇。设计模式允许我们在较高的抽象层次上进行设计。基于一个模式词汇表,我们自己以及同事之间就可以讨论模式并在编写文档时使用它们。模式名可以帮助我们思考,便于我们与其他人交流设计思想及设计结果。找到恰当的模式名也是我们设计模式编目工作的难点之一。

  2. 问题(problem)

  描述了应该在何时使用模式。它解释了设计问题和问题存在的前因后果,它可能描述了特定的设计问题,如怎样用对象表示算法等。也可能描述了导致不灵活设计的类或对象结构。有时候,问题部分会包括使用模式必须满足的一系列先决条件。

  3. 解决方案(solution)

  描述了设计的组成成分,它们之间的相互关系及各自的职责和协作方式。因为模式就像一个模板,可应用于多种不同场合,所以解决方案并不描述一个特定而具体的设计或实现,而是提供设计问题的抽象描述和怎样用一个具有一般意义的元素组合(类或对象组合)来解决这个问题。

  4. 效果(consequences)

  描述了模式应用的效果及使用模式应权衡的问题。尽管我们描述设计决策时,并不总提到模式效果,但它们对于评价设计选择和理解使用模式的代价及好处具有重要意义。软件效果大多关注对时间和空间的衡量,它们也表述了语言和实现问题。因为复用是面向对象设计的要素之一,所以模式效果包括它对系统的灵活性、扩充性或可移植性的影响,显式地列出这些效果对理解和评价这些模式很有帮助。

目录
相关文章
|
3月前
|
人工智能 算法 前端开发
打破传统叙事逻辑,构建基于原子化任务的人机交互
在复杂中后台设计中,为解决配置变更影响多场景问题,提出结合正向和逆向信息架构,采用原子化任务,动态组合任务,降低用户和开发成本,优化体验并改变已有的产品迭代和人机交互模式。未来可能发展为AI自动根据业务规则和用户行为生成最佳方案。
|
6月前
|
Kubernetes 持续交付 开发工具
三类代码协同模式,你要如何选?
三类代码协同模式,Git大神告诉你到底如何选。
|
3月前
|
人工智能 达摩院 自然语言处理
类与类之间的协作模式问题之策略模式影响我们在工作中决策过程的问题如何解决
类与类之间的协作模式问题之策略模式影响我们在工作中决策过程的问题如何解决
|
4月前
软件复用问题之复用决策中,业务架构和技术之间有何关系
软件复用问题之复用决策中,业务架构和技术之间有何关系
|
4月前
|
领域建模
领域建模问题之“读模型”在事件风暴中起什么作用
领域建模问题之“读模型”在事件风暴中起什么作用
|
设计模式 JSON 数据建模
知识图谱模式设计模式与原则
知识图谱是一种非常强大的表示工具,它可以通过一张图表达复杂的概念,这就是为什么常说“一图胜千言”。但是,如果我们在没有明确定义的模式下创建知识图谱,就会存在一些问题。这就是为什么需要一种模式来限制链接的类型,充当文档,提供和机器可读的语义,并确保软件按照预期的方式来组织信息。 对于知识图谱而言,良好的模式设计比关系数据库更为重要和核心。不幸的是,对于如何完成相对简单的任务而言,目前缺乏详细的指导。根据我的经验,我想至少提供一些帮助。
253 0
|
弹性计算 人工智能 数据可视化
数字化转型过程中需要厘清的几个关系:技术与规则
前言 在文章的开头,笔者摘用一段报告,报告内容对数字化全面转型进行了如下描述:“对于一些高管来说,这是一场关于技术的竞争。对于其他人而言,数字化是一种与客户互动的新方式,它代表了一种全新的经营方式。虽然这些定义都不一定不正确,但是这种多样化的视角却经常让领导团队‘四分五裂’。原因正是理解的不一致和缺乏对企业未来之路的共同愿景。正因为如此,企业会经常出现不连续的举措和错失方向的努力,继而表现出迟缓或从一开始就迷失方向。”
286 0
数字化转型过程中需要厘清的几个关系:技术与规则
|
存储 边缘计算 缓存
带你读《思科软件定义访问 : 实现基于业务意图的园区网络》第三章软件定义访问运作方法3.1(二)
《思科软件定义访问 : 实现基于业务意图的园区网络》第三章软件定义访问运作方法3.1
带你读《思科软件定义访问 : 实现基于业务意图的园区网络》第三章软件定义访问运作方法3.1(二)
|
边缘计算 网络虚拟化
带你读《思科软件定义访问 : 实现基于业务意图的园区网络》第三章软件定义访问运作方法3.2
带你读《思科软件定义访问 : 实现基于业务意图的园区网络》第三章软件定义访问运作方法3.2
带你读《思科软件定义访问 : 实现基于业务意图的园区网络》第三章软件定义访问运作方法3.2
|
边缘计算 编解码 数据可视化
带你读《思科软件定义访问 : 实现基于业务意图的园区网络》第三章软件定义访问运作方法3.5(一)
《思科软件定义访问 : 实现基于业务意图的园区网络》第三章软件定义访问运作方法3.5
带你读《思科软件定义访问 : 实现基于业务意图的园区网络》第三章软件定义访问运作方法3.5(一)