框架与类库
一、重用技术
在区别二者之前,首先需要了解软件开发中的重用(Reuse)技术。
- 重用技术在软件开发中重要性
- IT产业:
减小开发的工作量
缩短软件开发周期,产品及早投入市场
可靠性和可维护性得到保证
增强市场竞争力- 科研领域
长生命期的设施特别要求软件的灵活性、健壮性和可扩充性 ,重用技术是保证软件这些特性的关键之一
- 重用技术的发展
程序和函数库-传统的面向过程
类库(Class Libraries) -面向对象,代码级的重用
框架(Framework) -面向对象,不仅代码级的重用,而且分析和设计的重用
二、框架与类库的主要差别
首先给出框架和类库定义:
- 框架:在给定问题领域范围(特定应用领域)内建立起可重用解决设计问题而互相间协作的一组类的集合(它典型包括了具备缺省行为的大量对象)
- 类库:类的集合
类库与框架的主要差别:
1)行为相对于协议
- 类库是待开发程序中要访问的一个个行为的集合;
行为的集合- 框架不仅仅是行为的集合,而且包括了支配着把这些行为组合在一起方法的一组规则,或称为协议。
行为的集合+组合方法的规则
2)“不是访问我们,而是我们访问你”
- 使用类库时,用代码产生对象实例并访问它们的成员函数,建立对象实例之间的联系,保证它们协调一起工作 。
- 用框架开发应用软件,编写用来划分软件各部分之间承担任务的程序,不用规定不同部分应该如何协调一起工作,由框架访问该程序就完成了应用软件的开发。
3)实现相对于设计
类库只重用实现,而框架同时重用设计
框架包含了一组相互关联类一起工作的方法,在一个给定领域范围中,解决了大量具体问题通用的设计