- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
高级架构师讲义_18_开源框架研究.pdf
开源框架研究
© 中国科学院软件所2006 Software Engineering, 7th edition. Chapter 1 Slide 1
框架
框架是一种特殊的软件,它为软件开发带来了
高度的重用性,但同时它也需要高技巧的设计
。软件组织使用框架来积累知识,对推动软件
开发是一种有效的方式,但前提是你能够了解
如何设计一个框架。
© 中国科学院软件所2006 Software Engineering, 7th edition. Chapter 1 Slide 2
1
什么是框架
在软件开发中出现过各种各样的框架,开源软
件的兴起,使得各种各样的框架纷纷出现,例
如,Apache组织下就拥有诸多的框架类产品,
包括国内很熟悉的struts 。那么,什么是框架呢
?
在设计模式中,Gamma等人为框架给出了一个
定义:框架就是一组协同工作的类,它们为特
定类型的软件构筑了一个可重用的设计。
© 中国科学院软件所2006 Software Engineering, 7th edition. Chapter 1 Slide 3
框架是针对特定的问题领域的,例如,struts是
一个针对Web开发的框架。
框架包括了一组的抽象概念。这些抽象概念来
源于问题领域。例如,struts是基于MVC模式进
行设计的,所以它必须为model、view 、control
建立抽象概念。
© 中国科学院软件所2006 Software Engineering, 7th edition. Chapter 1 Slide 4
2
框架使得这些抽象概念相互协作,并提供了一种扩展的
形式,以实现重用。这是框架的具体工作。框架在抽象
概念上进行工作,定义抽象概念之间的协作方式。框架
和普通软件或是类库的区别就在于,用户通过扩展框架
来重用该框架。这些扩展点的设计称为框架设计的核心
。例如,在struts1.0 中,采用的是类继承的扩展方式(
对Action进行扩展)。
© 中国科学院软件所2006 Software Engineering, 7th edition. Chapter 1 Slide 5
框架实例
spring ()是一个开源
的框架,这个框架定位于一个整体的基于J2EE的应用型
框架。他的定位哲学是不重新发明轮子。例如,他提供
了数据库访问机制,但是他的数据访问机制是基于
JDBC、Hibernate和JDO的。重用和再包装的思路充满
了整个spring框架。国内的软件产业大都定位在系统集
成,这种思路非常适合于国内的软件组织。使用这个例
子的目的也在于此。
© 中国科学院软件所2006 Software Engineering, 7th edition. Chapter 1 Slide 6
3
框架应该尽可能使用现有的技术。而不要重复
投资。
© 中国科学院软件所2006 Software Engineering, 7th edition. Chapter 1 Slide 7
框架对软件开发的意义
知识积累
框架的核心价值是对知识的积累。软件开发是一项知识
性的活动。但是知识存在于人的大脑中,是最难进行积
累的。而在软件开发中,代码是最确定
文档评论(0)