(22)除了提供可被应用程序调用的类以外,还基本实现了一个可执行的架构。

admin2019-06-12  26

问题 (22)除了提供可被应用程序调用的类以外,还基本实现了一个可执行的架构。

选项 A、框架
B、标准库
C、函数库
D、类库

答案A

解析 本题考查面向对象方法学的类库及框架知识。
    大量的程序员都尽可能多地利用现有的代码。程序员经常购买那些包装成库的代码。当C语言流行时,代码库就是函数库。例如,可以购买一个数学库,该库含有完成微积分和代数运算的函数。通常,可以在程序代码中使用一个包含文件来指定一个函数库,可以静态或动态地链接这个函数库。静态链接意味着库代码直接集成到程序中。在这种情况下,程序不依赖于其他文件,但文件的大小可能很大。动态链接意味着程序有库的版本信息,其代码存放于一个单独的文件中,这个文件称为动态链接库(DLL)。只有程序运行期间调用DLL中的函数时,才加载DLL到内存。DLL作为一个独立的实体存在于内存中,可以同时被多个程序访问。
    出现C++后,函数库转变为类库。两者的区别在于函数库只包含一系列函数,而类库是用面向对象编程的原理设计的。例如,可以为数据结构做一个类库,该库包括一个链接列表的类。如果使用一个函数库代替,那么链接列表会独立于操作它的函数。另一方面,使用类库时,链接列表和操作它的函数存在于同一个文件的同一个类中。然而,正如使用函数库一样,使用类库涉及包含文件和链接一个静态库。最近,已经从类库发展到模板库。其原因是C++编译器现在已经能够处理C++模板。模板库提供了一系列优于类库的优点。要使用模板库,只要在程序中加入包含文件即可,不用链接到库,因为所有的库代码已经包含在该包含文件中了。Visual C有三个供开发者使用的库:一个类库(MFC),两个模板库(ATL和STL)。
    框架是对于那些试图在所关心的领域构造一个复杂软件系统的用户而言的。因为它是处于特定领域中,所以应用系统的体系结构在许多不同的方面具有一定的相似性。框架利用一系列的对象和它们之间的接口来对应静态和恒定结构的端口,并保留友好界面使用户能够很容易完成变化的、不稳定的剩余部分而得到一个新应用程序。任何框架都是特定领域的框架,一个框架可以包含一个或多个模式。
    框架是一种软件重用技术,是一个应用软件系统的部分或整体的可重用设计。框架的具体表现为一组抽象类以及其实例(对象)之间的相互作用方式。它是对于一个软件系统的全部或部分的可复用设计。
    在一个专用领域内构造框架时,把握框架的共同点是关键因素。框架一旦被建立,其适应性和可扩展性就被提到了首要地位。框架的直接目的是被复用,以减少建立一个新应用系统的工作量。只有当理解一个框架的代价少于建立一个新系统的代价时,框架的复用才成为可能。构造框架是一个逐渐积累的过程,就是说不断有新发现的共同点和新的构件被加入,同时那些老的、不必要的部件被删除,以此来保证整个应用系统的性能,这样新旧构件之间的接口直接影响框架的适应性和可扩展性。任何框架都不能被直接复用,除非要建立的应用系统非常简单或与框架极为相似,除此之外,都要对框架进行或多或少的修改和扩展才能被复用。
    框架和类库的一些主要区别与联系如下:
    ①在类库中是由用户实例化抽象类,类库构件被单独使用;而在框架中要有抽象类的一些具体子类,应用软件开发者通过修改现存的类或定义新的子类以扩展现存的类来使用框架。
    ②在类库中是用户在需要的时候调用函数,不预定义控制流;而框架使用了与用户之间的反向控制流,使用框架时,通常只是实现一些回调函数或使一些类适用于上下文,然后调用一个单一的方法或过程,框架将完成其余的工作,在适当的时候和地点调用必要的函数或方法。这就是框架的Hollywood法则(“Don’t call us,w’ll call you”)。
    ③使用类库只需要了解类的外部接口,但必须要定义应用软件的整体结构;而框架的使用者要了解框架的抽象设计和类的内部结构来进行修改和扩展,因此学习框架要比类库更加困难,同时有被错误使用的危险,但框架被复用的潜力大大超过了类库。
    ④在类库中没有定义缺省行为,而在框架中提供缺省行为。
转载请注明原文地址:https://kaotiyun.com/show/ZECZ777K
0

最新回复(0)