在早些时候就接触过基于构件开发方式的软件系统开发,当时也只是灌输式的知道要采取这样的方式进行系统开发,达到可复用,提升开发效率。回过头来想想,还是有点意思的,现在重新再梳理思考下。
组件&构件
在我们学习任何知识的时候都会遇到各种各样的术语,这些术语本身就是对事务的抽象,下面看看它们都是什么鬼..
组件的描述
基于组件的软件工程(Component-based software engineering,简称CBSE)或基于组件的开发(Component-Based Development,简称CBD)是一种软件开发范型。它是现今软件复用理论实用化的研究热点,在组件对象模型的支持下,通过复用已有的构件,软件开发者可以“即插即用”地快速构造应用软件。这样不仅可以节省时间和经费,提高工作效率,而且可以产生更加规范、更加可靠的应用软件。 --wikepedia
构件的描述
在机械工程学中,指称机器中每一个独立的运动单元体称为一个构件,它可以由单个或数个机械零件构成。两个以上的构件可进一步组成运动副。
此外,构件的概念被使用到计算机科学中,指一个系统或软体中的基本组成部分。
--wikepedia
上述中可以了解到构件最早用于工业界,后沿用到软件开发方法中,在工业中已经解决大规模产品制造的问题。
在软件开发中又将该思想进行抽象进化成了组件,也就成了大家口中津津乐道的组件化了。
为什么需要组件化
可复用
自组织
可独立部署
有良好的规范
易用性
罗列上面几条感觉非常熟悉,也不止有些,因每个人对它的理解也不尽相同。上到架构思想的抽象,下到代码实现,都是要解决软件系统的规模和复杂程度都在日益增长,控制复杂性和快速适应变化。
条条大路通罗马,架构演进太快,还需要抓住核心脉络,才能不至于受到干扰,坚实的完善自己的理解。
面向对象的方法
组件的要素
1. 具体实现
2. 使用规范说明
3. 统一包装规范,也就是package规范设计
4. 部署方式
总结
写几个关键词,偷懒一下: 抽象,分解,细分,灵活,可扩展,分布式,组件库,可复用,管理规范