频道栏目
读书频道 > 其他 > ACE技术内幕:深入解析ACE架构设计与实现原理
1.1.2 框架
2012-08-16 16:33:24     我来说两句
收藏   我要投稿
本书从构架模式、编程示例和源代码3个维度系统地对经典网络框架ACE(Adaptive Communication Environment)的架构设计和实现原理进行了深入分析,它能解决4个方面的问题:第一,帮助框架设计者领略软件框架设...  立即去当当网订购
用框架来翻译framework是非常贴切和生动的。框架在汉语词典中的含义为:①建筑工程中,由梁、柱等联结而成的结构;②比喻事物的组织、结构。显然含义②是一种抽象的定义。我们从含义①出发,“由梁、柱等联结而成的结构”,说明框架还不是一个完整的建筑,或者说框架以外的部分是可以改动的,还可以对很多地方做进一步设计。举个例子:如果门、窗的位置还没有确定,那么可以在框架中设计门和窗的位置;如果门和窗的位置已经在框架中固定,那么可以设计门和窗的款式。总之还有很多可以发挥的地方。至于发挥空间大小由具体的框架完成的粒度的粗细决定。粒度粗一点,发挥空间就大一点,要做的工作也会多一点;粒度细一点,发挥空间就小一点,可以有更多时间用于其他方面的设计。不管怎样,已经完成了的梁和柱等主体结构不能再改变,除非重新造一个框架(但这与使用框架的原意相悖)。同时设计必须符合框架已有的约束,不能把梁锯了开个窗,也不能把柱推了开个门。如果这样做,框架就会失去稳定性,设计也就变得不靠谱。 
软件框架就是软件工程中的框架。一般而言,一个软件框架总是面向软件应用的某一领域,它用某种编程语言为该领域的使用者搭建好“梁”和“柱”。而使用者在框架的约束内,通过框架提供的接口,完成一定的应用功能。框架提供了很好的重用性,使开发人员不必每次都从头开始。同时,框架通过良好的设计屏蔽了该领域内最烦琐的细节部分,使不熟悉该领域的开发者也能对该领域进行开发。框架也为开发者提供了一个稳定的基础环境,加快了开发进程。当前最为常用的软件框架主要有OMG的CORBA框架、SUN的EJB框架和微软的DCOM框架等。 
业界对框架的定义非常多,但只有放到特定语义环境中,才能准确表达框架的含义。在《设计模式》一书中,作者引用了这样的框架定义:框架是构成一类特定软件可复用设计的一组相互协作的类,该定义略显抽象。在本书中,引用Craig Larman在《Applying UML and Patterns》一书中的定义,因为它和本书的主题最为贴近。在该书中,Craig Larman是这样定义软件框架的: 
q 框架是一个内聚的接口和类的集合,这些接口和类相互协助,提供核心的服务功能和逻辑子系统中不变的部分。 
q 框架包含了抽象的类,这些抽象类定义了框架中用户需要遵循的约束,包含了对象的交互过程和不变量。 
q 通常框架的使用者需要定义框架中部分类的子类,才能定制、利用、扩展框架的功能。 
q 框架包含有抽象方法和具体方法的抽象类。 
q 框架采用Hollywood原则“不要找我们,我们会打电话给你”。通常这意味着用户通过定义框架中既有类的子类,从框架中获取消息。 
在本书中,我们把上述定义称为框架五元素,分别用元素1、元素2、元素3、元素4、元素5表示。元素1相对比较抽象,告诉我们,不管应用程序如何变化,框架是不变的部分。另外4个元素是我们的分析重点。 
如果你是第一次接触软件框架,可能不是很明白Craig Larman对软件框架的定义。不过没有关系,学习完本书,你就会明白框架和这5个元素之间的关系,甚至还可以用这5个元素来指导软件框架设计。 
您对本文章有什么意见或着疑问吗?请到论坛讨论您的关注和建议是我们前行的参考和动力  
上一篇:1.1.1 模式
下一篇:1.1.3 模式与框架的关系
相关文章
图文推荐
排行
热门
最新书评
特别推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站