2.5 专题:框架技术
接下来,对框架技术进行专门讨论。
2.5.1 框架vs.类库
对面向对象开发而言,类库和框架有很多共同之处,但它们确确实实又是不同的。通过比较框架和类库的区别,可以更深入地理解框架的概念和内涵。如图2-14所示,框架是一种介于类库和应用系统之间的概念。
[img]
[/img]
框架介于类库和应用系统之间
类库是类的集合,这些类之间可能是相互独立的。应用开发者希望使用任何一个类时可以直接调用它,而不必再写一个。与类库相比,框架和类库有着相似的形式,即框架也往往是类的集合;但不同之处在于,框架中的各个类并不是孤立的,而框架中的业务逻辑代码是将不同的类“连”在一起,在它们之间建立协作关系。图2-15很好地表达了上述意思。
[img]
[/img]
类库与框架
(图片来源:《应用框架的设计与实现——.NET平台》)
Xin Chen在他的著作《应用框架的设计与实现——.NET平台》一书中写道:
框架通过封装处理流程的控制逻辑,使它对开发者透明,来简化开发工作。这种封装也是框架和类库(class library)的区别之一。类库由许多现成的、供开发者用于构建应用的组件组成,但是,开发者必须理解不同组件之间的关系,并编写处理流程代码把众多组件组织起来。框架则不同,它通过预先把众多组件组织在一起的方式,封装了处理流程的控制逻辑;因此,开发者就不用再编写控制逻辑来组织组件之间的交互了。……
……应用开发者使用类库这种方法时,必须编写管理类库中不同组件实例(instance)的控制流程。为此,应用开发者必须充分理解每个相关组件,以及组织组件协作所必需的业务逻辑。而使用框架这种方法时,由于大部分处理流程已经被框架管理了起来,所以开发者需要编写的控制代码就非常少。由于应用框架隐藏了不同组件之间的处理流程,这就免去了开发者编写协调逻辑(coordination logic)之苦,也不用经历编写这些协调代码的学习曲线了。既然处理流程的控制逻辑从应用层移到了应用框架层,那么框架的设计人员就要运用其架构和领域知识,来定义框架内的组件该如何协作;而使用框架的开发者,几乎无须知道框架组件如何协作,就能高效地开发应用。
由此可见,从重用的角度来比较,框架提供的重用性比类库更大。类库的目标是提供通用的类,如果是Utility类的情况(包含多个static方法),将其目标理解成提供通用的函数(就像C语言时代的函式库一样)也未尝不可;而框架的目标是提供在某领域内通用的软件系统半成品(或子系统半成品)。
- 大小: 7 KB
- 大小: 13.4 KB
分享到:
相关推荐
这里可能包含了数据库连接管理、ORM(对象关系映射)框架、数据访问层的设计模式等。对于处理数据库交互的开发者来说,这些工具能够极大地减轻工作负担,提供高效、安全的数据操作方式,同时支持SQL查询优化和事务...
在.NET框架中,C#类库(Class Library)是一种用于创建可重用代码的项目类型,它可以被其他应用程序引用和使用。本篇文章将详细介绍如何使用Visual Studio(VS)来生成C#类库,并生成DLL文件。 一、创建C#类库项目 ...
C#是微软公司开发的一种面向对象的编程语言,广泛应用于Windows平台和.NET框架。它具有丰富的特性和强大的性能,支持泛型、属性、接口、委托、事件、枚举、结构等概念。C#的类库设计遵循强类型和面向对象的原则,...
不过,需要注意的是,随着Adobe Flex框架的更新,某些新的API可能已替代了fl.*类库中的某些功能,因此在新版本的开发环境中使用时,应检查其兼容性。 通过以上步骤和知识,你可以将Flash CS3的fl.*类库集成到Flex...
【类库与框架】★★★★★-开源SMTP框架skpsmtpmessage.zipIOS应用例子源码下载【类库与框架】★★★★★-开源SMTP框架skpsmtpmessage.zipIOS应用例子源码下载 1.适合学生学习研究参考 2.适合个人学习研究参考 3....
在整合SSH框架时,通常需要以下类库: 1. **Struts框架**:包括Struts的核心库、Struts2的扩展库,如struts2-core、struts2-convention、struts2-json-plugin等,用于处理HTTP请求、展现视图和执行业务逻辑。 2. **...
一个免费开源的、轻量级的PHP开发框架,遵循 LGPL 开源协议发布,致力于提高开发人员的编程体验、开发效率,让网站更稳定高效。 1. 内核最小化,功能插件化 2. 面向对象、接口式编程 3. 类库积累体系 4. ...
其中,Base类库是整个框架的基础,它包含了众多核心功能和通用类,为其他模块提供支撑。6.4.0.15版本的Base类库源码是我们深入理解并利用Essential Studio的关键。 在源码中,我们可以看到以下几个重要知识点: 1....
8. **游标管理**:`OracleCursor`类(在.NET框架中不是公开的,但其概念仍然重要)用于处理数据库游标,允许你控制查询结果的导航。 `.DLL`文件,即动态链接库,是Windows操作系统中的共享库,其中包含可由多个程序...
在.NET框架中,C#是一种常用的编程语言,用于构建各种应用程序,包括Web应用程序。"C#页面辅助类.zip"是一个类库,它包含了用于简化Web页面开发的C#类。这个类库的重点在于提高开发效率,减少代码重复,并提供一些...
也就是说这个类库中的类相互联系组织,构建一个应用程序的框架类库.类库有很多种,但作为框架类库的要求很高,因为它需要很好的设计组织用来供程序员搭建应用程序框架.Borland的OWL(Object Window Library)还有微软的...
在描述中提到的"DevExpress",这是DevExpress公司的简称,该公司专注于为开发者提供广泛的开发工具和服务,包括但不限于控件、框架、报表解决方案、测试工具等。DevExpress的产品适用于.NET Framework和.NET Core,...
这份“c#+多年积累的类库.zip”文件,包含了作者多年在C#开发中积累的实用类库,对于初学者来说是一份宝贵的资源。下面将对其中可能包含的关键知识点进行详细阐述。 1. 类库概述: 类库是预先编写好的一组函数或...
在Visual C++.NET中,MFC类库被进一步增强,以适应.NET框架的需求。这个版本的MFC不仅包含了对.NET框架的支持,还引入了许多新的特性,如改进的内存管理、增强的异常处理和更好的多线程支持。这些改进使得开发者能够...
Selenium 是一个强大的开源自动化测试框架,用于网页应用的测试。在给定的"2.48.2类库"中,包含的主要组件是 `selenium-server-standalone-2.48.2.jar` 和 `selenium-java-2.48.2.jar`,这些是Selenium 2.48.2版本的...
这个压缩包包含两个版本的DevExpress.Data类库DLL文件:`DevExpress.Data.v11.1.dll`和`DevExpress.Data.v22.2.dll`。这两个DLL文件分别对应DevExpress在不同时间点的发行版本,适用于不同的.NET框架环境。 ...
在iOS应用开发中,类库和框架扮演着至关重要的角色,它们为开发者提供了丰富的功能,提高了代码的可重用性和项目的开发效率。本资源“IOS应用源码之【类库与框架】RMModelObject.rar”显然是一个专注于模型对象处理...
4. 将项目设置为类库:在项目属性中,确保目标框架与目标平台兼容,并且输出类型设置为"类库",而不是"Windows应用程序"。 5. 编译项目:点击"生成"菜单,选择"生成解决方案",生成的.dll文件就是包含窗体的类库。 ...
Maticsoft.DBUtility.dll和Maticsoft.Common.dll就是两个这样的类库,专为.NET 3.5框架设计,提供了丰富的数据库操作和通用功能支持。本文将深入探讨这两个类库的主要功能、应用场景以及如何在项目中有效地利用它们...
《Visual C++.NET MFC类库应用详解》是针对C++开发者的一份深入学习资料,主要探讨了在.NET框架下如何高效地利用MFC(Microsoft Foundation Classes)类库进行应用程序开发。MFC是微软为Windows平台提供的一个强大的...