博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【转载】架构和框架的区别
阅读量:6817 次
发布时间:2019-06-26

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

人们对软件存在非常多的误解,其中一个最为普遍的误解就是:将架构(Architecture)和框架(Framework)混为一谈。其实很简单,一句话:框架是软件,架构不是软件。框架落脚在“架”字上,可以理解成名词性的,是一个客观性的名词存在,如.Net Framework;而架构体现在“构”字上,理解成构造,是一个动词性的,是一系列动作发生的策略性体现。

       框架是一种特殊的软件,它并不能提供完整无缺的解决方案,而是为你构建解决方案提供良好的基础。框架是半成品。典型地,框架是系统或子系统的半成品;框架中的服务尅被最终应用系统直接调用,而框架中的扩展点是供应用开发人员定制的“可变化点”。

       架构不是软件,而是关于软件如何设计的重要策略。软件架构决策设计到如何将软件系统分解成不同的部分、各部分之间的静态结构关系和动态交互关系等。经过完整的开发过程之后,这些架构决策将体现在最终开发出的软件系统中;当然,引入软件架构之后,整个开发过程变成了“分两步走”,而架构决策往往会体现在框架之中。或许,人们常把架构和框架混为一谈的原因就在于此吧!我们不能指着某些代码,说这就是软件架构,因为软件架构是比具体代码高一个抽象层次的概念。架构势必被代码所体现和遵循,但任何一段具体的代码都代表不了架构。

       框架技术和架构技术的出现,都是为了解决软件系统日益复杂所带来的困难而采取“分而治之”思维的结果-----先大局后局部,就出现了架构;先通用后专用,就出现了框架。下图很好地揭示了这一点。架构是问题的抽象解决方案,它关注大局而忽略细节;而框架是通用半成品,还必须根据具体需求进一步定制开发才能变成应用系统。

       简而言之,框架和架构的关系可以总结为两句话:(1)为了尽早验证架构设计,或者处于支持产品线开发的目的,可以将关键的通用机制甚至整个架构以框架的方式进行实现;(2)业界(及公司内部)可能存在大量可供重用的框架,这些框架或者已经实现了软件架构所需的重要架构机制,或者为未来系统的某个子系统提供了可扩展的半成品,所以最终的软件架构可以借助这些框架构造。

转载于:https://www.cnblogs.com/cokefenta/p/6585581.html

你可能感兴趣的文章
【python3的学习之路一】输入和输出
查看>>
在Eclipse中生成接口的JUnit测试类
查看>>
Oracle SQL常用内置系统函数总结
查看>>
[POJ] #1005# I Think I Need a Houseboat : 浮点数运算
查看>>
西湖论剑WP
查看>>
数组Array,集合List与字符串String,整形int的get类方法。
查看>>
【转】浏览器内核
查看>>
面试题:查找旋转数组中的某一元素
查看>>
uva12298(生成函数)
查看>>
C++ variable_template
查看>>
第十七章、程序管理与 SELinux 初探 工作管理 (job control)
查看>>
2016年新年伊始
查看>>
DataTable循环删除行
查看>>
字符串2
查看>>
在Linux合并文件
查看>>
nodejs express-session使用时 req.session undefined问题
查看>>
[工具]iostat
查看>>
php正则表达式匹配函数
查看>>
从零开始学OpenDaylight之五:Hello安装到Controller
查看>>
发送带有附件的邮件
查看>>