前几天我们小组在讨论 组件化 相关的想法,而随着讨论的加深,发现自己对于一些基本的理论还有一些误区,特此先弥补一下,本来很早就要写好的,但前两天看历史小说太入迷了,自我控制力还是有待加强啊....
- 架构
- 框架
- 设计模式
- 组件化
通过下面的问题来理解下上述的概念:
一、 架构和框架的关系?
框架是软件,架构不是软件。
框架是一种特殊的软件,它并不能提供完整无缺的解决方案,而是为你构建解决方案提供良好的基础。框架是半成品。典型地,框架是系统或子系统的半成品;框架中的服务可以被最终应用直接调用,而框架中的扩展点是供应用开发人员定制的“可变化点”。
-
软件架构不是软件,而是关于软件如何设计的重要决策。软件架构决策涉及到如何将软件系统分解成不同的部分、各部分之间的静态结构关系和动态交互关系等。
参考引入:谈框架和架构的区别
二、 设计模式和架构的关系?
- 设计模式主要是针对单一问题的解决方法,范畴比较小。
- 架构是高层次的针对体系结构的一种设计思路,范畴比较大。
可以这么说,一个架构中可能会出现多个设计模式来解决多种架构中的问题。
参考引入:图说设计模式
三、 设计模式和框架的关系?
- 从应用领域上分,框架给出的是整个应用的体系结构;而设计模式则给出了单一设计问题的解决方案,并且这个方案可在不同的应用程序或者框架中进行应用。
- 从内容上分,设计模式仅是一个单纯的设计,这个设计可被不同语言以不用方式来实现;而框架则是设计和代码的一个混合体,编程者可以用各种方式对框架进行扩展,进而形成完整的不同的应用。
- 框架一旦设计成形,虽然还没有构成完整的一个应用,但是以其为基础进行应用的开发显然要受制于框架的实现环境;而设计模式是与语言无关的,所以可以在更广泛的异构环境中进行应用。
参考引入: 架构、框架、设计模式之间的关系简述
框架通常是代码重用,而设计模式是设计重用,架构则介于两者之间,部分代码重用,部分设计重用,有时分析也可重用。
在软件生产中有三种级别的重用:
- 内部重用,即在同一应用中能公共使用的抽象块;
- 代码重用,即将通用模块组合成库或工具集,以便在多个应用和领域都能使用;
- 应用框架的重用,即为专用领域提供通用的或现成的基础结构,以获得最高级别的重用性。
框架与设计模式虽然相似,但却有着根本的不同。
- 设计模式是对在某种环境中反复出现的问题以及解决该问题的方案的描述,它比框架更抽象;
- 框架可以用代码表示,也能直接执行或复用,而对模式而言只有实例才能用代码表示;
- 设计模式是比框架更小的元素,一个框架中往往含有一个或多个设计模式,框架总是针对某一特定应用领域,但同一模式却可适用于各种应用。
可以说,框架是软件,而设计模式是软件的知识。
参考引入:某知乎回答
四、组件化初步的认知?
对于这个概念,还没有具体的认知,先通过两个图来竖立下核心思想:
目前具体的来说,对于个人来说,就是下面两个问题啦:
- 如何划分模块?
- 中转站怎么用?
此处还需要好好实践和思考,具体的描述和理解等到下一篇再来记录。。。