博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
软件体系结构风格
阅读量:6533 次
发布时间:2019-06-24

本文共 962 字,大约阅读时间需要 3 分钟。

    这周通过课上以及课下的学习,我对软件体系结构有了更加清楚地认识,也了学习了一部分经典的软件风格。我着重介绍一下其中的两种风格:过滤器风格和面向对象风格。

面向对象风格

    抽象数据类型概念对软件系统有着重要作用,目前软件界已普遍转向使用面向对象系统。这种风格建立在数据抽象和面向对象的基础上,数据的表示方法和它们的相应操作封装在一个抽象数据类型或对象中。这种风格的构件是对象,或者说是抽象数据类型的实例。对象是一种被称作管理者的构件,因为它负责保持资源的完整性。对象是通过函数和过程的调用来交互的。下面是面向对象风格的示意图

面向对象风格作为一种主流的软件体系结构风格,自然有诸多优点

1. 因为对象对其它对象隐藏它的表示,所以可以改变一个对象的表示,而不影响其它的对象。

2. 设计者可将一些数据存取操作的问题分解成一些交互的代理程序的集合。

同样的面向对象的系统也存在着某些问题:

1.为了使一个对象和另一个对象通过过程调用等进行交互,必须知道对象的标识。只要一个对象的标识改变了,就必须修改所有其他明确调用它的对象。

2.必须修改所有显式调用它的其它对象,并消除由此带来的一些副作用。例如,如果A使用了对象B,C也使用了对象B,那么,C对B的使用所造成的对A的影响可能是料想不到的。

 

解释器风格(虚拟机风格)

    一个解释器通常包括完成解释工作的解释引擎,一个包含将被解释的代码的存储区,一个记录解释引擎当前工作状态的数据结构,以及一个记录源代码被解释执行的进度的数据结构。  具有解释器风格的软件中含有一个虚拟机,可以仿真硬件的执行过程和一些关键应用。

    解释器风格的特点是解析和执行输入命令,然后根据解释器来更新状态。组件包括:命令解释器,程序状态,用户界面。连接器则是紧密相联的,这种风格非常灵活,但是对于用户的要求很高一个解释器通常包括完成解释工作的解释引擎,一个包含将被解释的代码的存储区,一个记录解释引擎当前工作状态的数据结构,以及一个记录源代码被解释执行的进度的数据结构。具有解释器风格的软件中含有一个虚拟机,可以仿真硬件的执行过程和一些关键应用;解释器通常被用来建立一种虚拟机以祢合程序语义与硬件语义之间的差异。

转载于:https://www.cnblogs.com/lym0816/p/5295280.html

你可能感兴趣的文章
2022 年 AI 会发展成什么样子,IBM 做出了 5 大预测
查看>>
腾讯2017暑期实习编程题3
查看>>
整理收藏一份PHP高级工程师的笔试题
查看>>
Intellij IDEA 构建Spring Web项目 — 用户登录功能
查看>>
[AHOI2013]作业
查看>>
[bzoj 4241]历史研究
查看>>
git push被忽略的文件 处理
查看>>
C#中用ILMerge将所有引用的DLL打成一个DLL文件
查看>>
PHP生成HTML静态页面
查看>>
服务器启动django
查看>>
Makefile 中:= ?= += =的区别【转】
查看>>
使用makecontext实现用户线程【转】
查看>>
Comet:基于 HTTP 长连接的“服务器推”技术
查看>>
BZOJ 2733: [HNOI2012]永无乡 启发式合并treap
查看>>
四种方法校验数组中是否包含某个指定的字符串
查看>>
29、Java并发性和多线程-非阻塞算法
查看>>
安装OpenResty开发环境
查看>>
第0课 从0开始
查看>>
python class和class(object)用法区别
查看>>
hadoop无法启动DataNode问题
查看>>