pattern-oriented software design - volume 1 - chapter 2 - 架构模式(好东西)

本章将介绍8种架构模式:Layers, Pipes and Fllters. Blackboard. Broker, Model-View-Controller,
Presentation-Abstractlon-Control,Microkernel and Reflection

非常酷的章节,原来我们现在流行的很多软件的模式都已经在20年前被定义了(本书1996年出版)。

介绍

架构模式是模式系统中高层次的模式。它帮我们定义一个应用的基础结构。我们把架构模式分成4类:

  • 从混沌到结构化(from mud to structure)。这种模式避免你陷入组件和对象的海洋,简而言之他帮助把一个总体系统分解成协作的子任务。这种模式包括layers分层,pipes管道,filters,过滤和blackboard黑板。
  • 分布式系统。这类模式有broker(代理),还有一个奇怪的三者联合microkernel+pipes+filters。broker模式估计是当下经典的分布式系统模式
  • 交互系统。它包括两个:Model-View-Controller和Presentation-Abstraction-Control。这两个都适合人机交互软件。
  • 适配系统。reflection和microkernel模式都适用与应用扩展和需求经常变化的系统。
    笔者话:貌似现在的软件都没有逃出这些架构。
    不同的架构模式可能会有不同的结果,即使他们属于同一类。比如MVC通常比PAC更高效,但PAC比MVC更支持多任务和特定人物用户接口。而且我们很多情况会把多种模式结合起来使用而不是只用其中一个。例如你要设计一个在各种不同网络中的灵活组件发布系统,又要兼顾 用户接口的灵活性。这样你得MVC和broker两者结合。(这个例子很诡异)

从混沌到结构化

  • 分层模式:允许你把任务分成多个子任务,而且这些子任务属于不同的抽象层。这种模式是应用最广的一种模式,
  • 管道+过滤器模式:提供了一种处理数据流的结构。每个处理步骤封装称一个filter,数据被在不同的filter之间的管道中传输。不同的filter组合可以让你构建不同系统。(这就是flink用的模式吧)
  • 黑板模式。这种模式适用于没有确定解决方法的情况。在黑板中几个子系统集合起来构建一个可能的解决方案。(无解+尝试解决)这个模式居然来自人工智能领域,

layers

The hyers architectural pattern helps to structure applications that
can be decomposed into groups of subtasks in which each group of
subtasks is at a particular level of abstraction.
网络协议是最好的分层模式例子。
这种模式设计比较简单,但你不得不平衡以下限制force:

  • 后续源码改动不能影响系统,比如一个组件改动不影响另外一个。
  • 接口必须稳定,或至少能从某一个固定实体获取。
  • 系统的某个组件需要能被交换。比如一个组件被替换了不会影响剩下的。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值