zoukankan      html  css  js  c++  java
  • 软件架构阅读笔记04

    8. 模型-视图-控制器模式(MVC模式)

    该模式亦被称为MVC模式,它将交互式应用分成3个部分,

    模型 – 包含核心功能和数据

    视图 – 给用户展示信息(可能不止一个视图)

    控制器 – 处理用户的输入 这样做的目的是将 信息的内部表示 和 信息呈现给用户并且从用户获取的方式 分离开。这样能解耦组件并且有效重用代码。

    用法

    主要编程语言的万维网应用的体系结构。

    web框架,例如Django和Rails。

    9. 黑板模式

    该模式可用于没有已知确定性解决方案策略的问题。黑板模式由3个主要组件组成。

    黑板 – 一块结构化的全局内存,包含解决方案空间的对象。

    知识源 – 具有各自代表性的专业模块。

    控制组件 – 选择,配置和执行模块。 所有组件都可以访问黑板。组件可能会生产添加进黑板的新数据对象。组件在黑板上寻找特定类型的数据,并且可能利用已有的知识源,通过模式匹配的方式来寻找数据。

    用法

    语音识别

    车辆识别和追踪

    蛋白质结构识别

    海纳信号解析

    10. 解释器模式

    该模式用于设计 用来解释专用语言写成的程序 的组件。它主要指明如何评估程序的行,即用特定语言编写的语句或表达式。基本想法是为语言的每个符号设置一个类。

    用法

    数据库查询语言,例如SQL。

    计算机语言用来描述通讯协议。

    架构模式的优劣比较

    下面的图表总结了各种架构模式的优劣。

    名字

    优势

    劣势

    分层模式

    低层级的组件能被不同的高层级组件调用。可以清晰地定义层级,所以层级化更容易标准化。当在层级内改动时不会影响到其他层级

    不是普遍适用的。在某种情况下,某些层级可能会被跳过

    客户端-服务端模式

    能很好地对客户端请求的服务进行建模

    请求被分到服务端的不同的线程中处理。因为不同的客户端有不同的展示形式,进程间通讯会导致额外开销。

    主从模式

    准确性 – 服务被代理到具有不同实现的从属组件中执行

    从属组件彼此隔离:之间没有共享状态。主从通讯的延迟在某些场景下是个问题,例如实时系统。这种模式只可以被用来解决能被分解的问题。

    管道过滤模式

    并行处理。当输出和输出都是流数据,过滤器一旦收到数据便开始计算。易于增加过滤器,系统扩展性好。过滤器可以复用。可以通过已有过滤器的重新组合来构建不同的管道

    效率会受限于最慢的过滤处理器。把数据从一个过滤器转移到另一个中时,存在数据转换的开销。

    代理模式

    允许对象动态变化,增加、减少和迁移,并且对象分布对开发者是透明的。

    需要服务描述标准化。

    点对点模式

    支持分布式计算。对于任意失败节点的高健壮性。取决于资源和计算效率的高拓展性。

    由于各个节点是自愿合作的,服务质量无法保证。安全性很难保证。性能取决于节点数量。

    事件总线模式

    易于新增发布者、订阅者和连接。该模式对于高分布式应用很奏效。

    该模式的可拓展性可能是个问题,因为所有消息都通过同一个事件总线传输。

    模型-视图-控制器模式

    相同的模型可以轻松拥有多个视图,可以在运行时建立连接和断开连接。

    复杂度增加。可能导致用户操作的许多不必要的更新。

    黑板模式

    易于新增应用。易于扩展数据空间的结构。

    很难修改数据空间的结构,因为会影响所有应用。可能需要同步和访问控制。

    解释器模式

    有可能实现高度动态行为。有利于终端用户的可编程性。提高灵活性,因为易于替换解释代码。

    因为解释语言的执行速度一般比编译语言慢,所以性能可能是个问题。

  • 相关阅读:
    directX视频播放------手动连接 分类: DirectX 2014-10-28 09:50 515人阅读 评论(0) 收藏
    DirectX:函数可以连接任意两个filter 分类: DirectX 2014-10-27 19:20 466人阅读 评论(0) 收藏
    查找IFileSourceFilter上的Pin 分类: DirectX 2014-10-27 18:19 433人阅读 评论(0) 收藏
    DirectShow基础编程 最简单transform filter 编写步骤 分类: DirectX 2014-10-25 15:03 462人阅读 评论(0) 收藏
    如何给filter添加自定义接口及调用 分类: DirectX 2014-10-24 14:47 455人阅读 评论(0) 收藏
    如何给filter添加自定义接口 分类: DirectX 2014-10-24 08:59 499人阅读 评论(0) 收藏
    虚拟串口--杂记 分类: windows驱动程序WDM 2014-10-21 15:56 672人阅读 评论(1) 收藏
    cpci热插拔信号 分类: 浅谈PCI 2014-10-21 08:20 603人阅读 评论(0) 收藏
    解决 安装驱动程序后设备管理器中显示黄色问号 分类: VC++ 浅谈PCI 2014-10-20 15:05 474人阅读 评论(0) 收藏
    Code Snippet
  • 原文地址:https://www.cnblogs.com/z245894546/p/11003930.html
Copyright © 2011-2022 走看看