模式结构

模式的结构一般分为是三个部分:

  • 需求(Forces)
  • 结果上下文(Resulting Context)
  • 相关模式(Related Patterns)

说明如下:

  1. 需求是必须解决的问题,它描述了必须解决的问题和围绕这个特定问题的上下文环境。需求有时候会发生冲突,必须予以取舍,选择最重要的需求来解决。
  2. 结果上下文是采用模式后可能带来的后果,它描述了采用这个模式后的结果,它包含三个部分: 好处,弊端和问题。
  3. 相关模式包括5种不同类型的关系,它描述了这个模式和其他模式之间的关系:
  • 前导

            前导模式是催生这个模式的需求的模式,例如,微服务架构模式是除单体架构模式以外整个模式语言中所有模式的前导模式。

  • 后续

            后续模式是指用来解决当前模式引入的新问题的模式,例如,如果你采纳了微服务架构模式,你需要一系列的后续模式来解决诸如服务发现,断路器等微服务带来的新问题。

  • 替代

            当前模式的替代模式,提供了另外的解决方案,例如,单体架构和微服务架构就是互为替代的模式,它们都是应用的架构风格。你可以选择其一。

  • 泛化

            针对一个问题的一般性解决方案。例如"毎主机单个服务"这个模式存在多个不同的技术实现。

  • 特化

            针对特定模式的特定解决方案。将服务部署为容器是针对"毎主机单个服务"的具体解决方案。

版权声明:著作权归作者所有。

看来还是比较冷清
相关推荐

Java 14新特性:instanceof的模式匹配

Java中instanceof是用来判断对象的类型是否是目标类型。如果是返回true,不是返回false。在Java 14之前,示例如下:if (obj instanceof String) { String str = (String) obj; .. str.contains(..) ..}else{ str = ....}obj instanceof String已经为

Python多线程编程 - 用队列实现生产者消费者模式

生产者和消费者模式的实现有很多中方式。这里的示例基于队列来实现生产者和消费者模式。生产者和消费者在各自的线程中运行,并检查队列的状态。如果队列没有满,生产者线程负责往队列里放数据。消费者线程负责从队列里取数据,前提是队列不是空的。代码示例:import threadingimport timeimport loggingimport randomimport Queuelogging.basicC

代理模式:Java基于虚拟代理(Virtual Proxy)懒加载创建耗时的对象

在java里有一些对象在创建初始化时是比较耗时,如JDBC的connection,有的时候我们希望只用到对象的简版,这种情况下我们可以使用代理的方式,在真正用到原始对象是在初始化耗时的对象。这种代理方式也叫虚拟代理(Virtual PRoxy)UML类图如下: 定义耗时类的接口public interface ExpensiveObject { void proc

(转)Android 5.1.1 源码目录结构

转自:http://blog.csdn.net/tfslovexizi/article/details/51888458最近公司培训新同事,我负责整理一点关于android的基础知识,遥想当年,刚接触android,也是一头雾水,啥都不懂,就是靠看文档和视频,对android有一个初步了解,然后就通过查看源码,才有更深入的了解。android有成千上万,说太少了,是成百万上亿的代码,当然要全部都了

ES6简化版的JavaScript中间件模式的实现

JavaScript中间件模式的目的是分解前端业务逻辑,通过next方法层层传递给下一个业务。比较经典的是express和koa。这是使用ES6实现的一个简版的中间件模式:class Middleware { use(fn) { this.go = (stack => next => stack(fn.bind(this, next.bind(this))))(this.go)

Ubuntu使用apt-get安装软件禁用交互模式

apt-get启动非交互模式:设置DEBIAN_FRONTEND为noninteractive使用apt-get安装软件包添加-y,-q参数export DEBIAN_FRONTEND=noninteractive apt-get -y -q install [packagename] 使用sudo命令sudo DEBIAN_FRONTE