您的位置:首页 > 其它

ACE框架理解(一)

2015-10-15 20:29 211 查看
一、框架的理解

1框架与类库之间的比较

类强调数据及对数据操作的方法的内聚性,所以其支持比函数库更加有效的小规模的复用。且其并未捕捉软件中的规范控制流、协作和可变性,因而虽广泛应用但有效范围有限。

类库为第一代面向对象的开发技术。而框架被称为第二代面向对象开发技术,其对类库的扩充在于框架中的哪些类可以相互协作,来为一组相关的应用提供可复用的架构,其相互协作产生的是不完全的应用。

白盒框架:通过面向对象的诸如继承性和动态绑定的语言特征,可扩展性在白盒框架中的得以实现。人们可以复用并且定制已有功能,这是通过从框架的基类继承,并且采用类似于Template Method模式重载预先定义的虚方法来实现的,这种模式定义了一种由派生类提供各个步骤的算法。

黑盒框架:通过定义接口,可扩展性在黑盒框架中得以实现,这种接口允许目标通过组合以及委托的方式插入到框架中。人们通过定义一些类可以实现对已有功能的服用,这些类定义要遵循特定的接口,采用诸如Function Object/Bridage/Strategy、Pluggable Factory的模式将这些类继承到框架中。

黑盒框架使用比白盒简单,因为开发人员只需了解很少的框架内部构造知识,但是黑盒框架设计比白盒要复杂。

2 框架与组件之间的比较

组件是一个软件系统被封装的一部分,实现了特定的服务或是一组服务。一个组件会提供一个或多个接口为它的服务提供访问。

组件是第三代开发技术,常见包括ActiveX空间和COM组件等。

组件比框架在此法和空间上的耦合更小,例如应用能够在不需要从现有基类中间他们子类化的情况下,就可以服用组件。并且,人们可以通过应用诸如Proxy和Broker之类的常见模式,将组件分布到整个网络的各个服务器上,为客户端提供远程的访问。

3.框架与模式之间的比较

虽然模式可以抽象设计和完成架构知识的复用,但其并不能直接产生可复用的代码。而框架的复用是通过将常见的模式和模式语言具体化并重构常见的执行角色来实现的。

二、ACE架构概述

1.ACE的关键框架:

Reactor和Proactor框架–事件驱动异步完成

Service Configurator框架–灵活配置

Task框架–并发

Acceptor-Connector–基于reactor,网络连接初始化后解耦

Streams–处理数据流

2.ACE的实现依赖于:

OS机制(事件多路分离、IPC、动态链接、多线程、多进程和同步)

C++语言特征(模板、继承和动态绑定)

模式(ComponentConfigurator、Strategy等)

3、ACE的框架类

ACE通过回调提供了控制的反转,而回调方法在ACE框架类中被定义为C++的方法,但ACE包装器外观却很少使用回调或虚方法。

Reactor和Proactor框架–在事件同步和异步发生时,回调应用提供的事件处理器来执行处理

Service Configurator框架–回调应用提供的服务对象,以实现对他们的初始化、挂起、恢复和结束

Task框架–在一个或多个线程控制中,回调应用提供的挂钩方法来执行处理

Acceptor-Connector–在服务处理器连接后,回调服务处理器来实现他们的初始化

Streams–当任务从一个流中被推入以及弹出时,通过回调来实现任务的初始化和结束操作。

–读《C++网络编程》卷2
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: