面向对象的软件框架
**定义:**在给定问题领域范围内建立起可重用解决设计问题而互相间协作的一组类的集合
框架与类库的主要差别
- 行为相对于协议
- 类库是待开发程序中要访问的一个个行为的集合
- 框架不仅仅是行为的集合,而且包括了支配着把这些行为组合在一起方法的一组规则或称为协议
- 不是访问我们,而是我们访问你
- 使用类库时,是代码产生对象实例并访问它们的成员函数,建立对象实例之间的联系,保证它们协调一起工作。
- 用框架开发应用软件,编写用来划分软件各部分之间承担任务的程序,不用规定不同部分应该如何协调一起工作,由框架访问该程序就完成了应用软件的开发
- 实现相对于设计
- 类库只重用实现,而框架同时重用设计
- 框架包含了一组相互关联类一起工作的方法,在一个给定领域范围中,解决了大量具体问题通用的设计
框架和模式的区别
- 层次不同
- 模式比框架更抽象,模式是在某种特定环境中,针对一个软件设计出现的问题而给出的可复用的解决方案,不能向使用者提供可以直接使用的类,设计模式只有在被设计人员使用时才能表示为代码。
- 框架是由可用于设计解决某个问题的一些类组成是集合,程序设计人员通过使用框架提供的类或扩展框架提供的类进行应用程序的设计
- 范围不同
模式本质上是逻辑概念,以概念的形式而存在,模式所描述的方案独立于编程语言 - 相互关系
一个框架往往包含多个设计模式,它们是面向对象系统获得最大复用的方式,较大的面向对象应用会有多层彼此合作的框架组成,例如,JavaWeb设计中的struts、spring和Hibernate等框架。
框架的主要优点
- 减少编程的代码
- 增加代码的可靠性和健壮性
- 更能保证一致性和模块化
- 提供了通用领域的问题服务
注:了解到了面向对象的软件框架是什么之后,就可以更深层的了解自己所使用的具体的软件框架的含义,做一个会用轮子的,也要做一个了解并设计轮子的程序猿。