https://blog.csdn.net/chinaclock/article/details/48975423

一、框架的理解 
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
--------------------- 
作者:chinaclock 
来源:CSDN 
原文:https://blog.csdn.net/chinaclock/article/details/48975423 
版权声明:本文为博主原创文章,转载请附上博文链接!

ACE框架理解(一)相关推荐

  1. ACE框架解读 - 源码篇

    最近研究了ACE框架的源码,先考虑选取最新版本ACE6.0来读,但是发现代码量有30多万行,规模太大了花的时间会比较多,所以考虑选取旧一些的版本,最后选取ACE4.5版本来阅读,代码量13万行比较适中 ...

  2. 从Netflix的Hystrix框架理解服务熔断和服务降级

    本文讲的是从Netflix的Hystrix框架理解服务熔断和服务降级,伴随着微服务架构被宣传得如火如荼,一些概念也被推到了我们面前,其实大多数概念以前就有,但很少被提的这么频繁.想起有人总结的一句话, ...

  3. 鸿蒙ACE框架-使用JS调用C++(1)

    鸿蒙ACE框架-使用JS调用C++(1) 1.下载编译烧录代码 https://blog.csdn.net/qq_33259323/article/details/116143820 2.编写测试用例 ...

  4. php-人员权限管理源码,基于ThinkPHP5+ACE框架开发的响应式通用后台权限管理系统PHP源码|响应式轻量级企业网站管理系统...

    源码介绍 基于ThinkPHP5+ACE框架开发的响应式通用后台权限管理系统PHP源码是一款响应式轻量级企业网站管理系统,采用ThinkPHP5.0.10+国外ACE1.40的UI模板的后台内容管理框 ...

  5. 常见java面试遇到的ORM框架理解

    常见ORM框架理解 前言: JAVA编程免不了和数据库打交道,那么如何高效便捷地操作数据库,也是一个需要而对的问题,原生的基于JDBC的方式当然是非常低效,而且要写一大堆无用的模板代码,不值得选取.好 ...

  6. 案例挑战——MVVM框架理解和实践

    MVVM框架理解和实践 一.背景介绍 二. 什么是MVVM架构? 1.架构示意图 2.MVVM概念总结 3.实现VM的框架 三.通过案例来理解MVVM框架 1.没有使用MVVM架构的程序 2.使用了M ...

  7. linux container框架,理解和配置LinuxContainerExecutor

    最近在研究如何为Hadoop开启基于Kerberos的安全配置,经过千辛万苦配置好后本以为到了见证奇迹的时刻,但是卡在NodeManger无法启动,折磨的死去活来.经历了各种百度.google后依然无 ...

  8. 20140711_类的继承、派生、ACE框架、指针的问题、系统的问题

    今天的总结. 首先是由CBussinessBase类引发的问题,由于自己迷迷糊糊的在整个框架中转悠,十分难过,于是自己就开始追踪,最开始追踪源于20140711,今天发现CBussinessBase里 ...

  9. TECS——ArduPilot——代码框架理解

    版权声明:本文为博主原创博文,未经允许不得转载,若要转载,请说明出处并给出博文链接  本文针对AP_TECS的框架给出对应代码及个人理解体会. 首先进行update_50hz()这个函数,50hz更新 ...

最新文章

  1. Linux编程_Shell脚本练习题
  2. 全国计算机二级计基础题第十五套,2014计算机二级VF试题及答案解析(第十五套)...
  3. HTML的标签描述19
  4. “chaos”的算法--之直接插入排序
  5. Navicat中查询哪些表有指定的字段名(技巧)
  6. 雷观(十七):想拉人入伙,合伙创业,请拿出一点认真的态度
  7. postman全局变量操作
  8. 设计模式学习笔记——策略(Strategy)模式
  9. [转]WebService 之 WSDL文件 讲解
  10. 菜鸟裹裹电脑版_天猫淘宝“基本盘”放缓,阿里云、菜鸟爆发,马云迎来拐点?...
  11. 热评一箩筐——《******技术宝典》
  12. matlab可以拼图么,拼图matlab程序希望有人可以给我讲解一下!!有偿求标注
  13. iptv网关服务器系统 自己刷,iptv网关服务器镜像系统
  14. iOS上玩galgame的各类模拟器【完整版】
  15. [spring源码学习]一、IOC简介
  16. ubuntu 14.04 ADSL 上网失败之解决
  17. 斯蒂文斯理工学院计算机科学硕士,2020年斯蒂文斯理工学院排名TFE Times美国最佳计算机科学硕士专业排名第80...
  18. 厉害了,Pandas表格还能五彩斑斓的展示数据,究竟是怎么做到的呢?
  19. 【Socket】苍老师有了丈夫,我也有了SAEA
  20. 大疆2019届秋招笔试--测试工程师

热门文章

  1. 并查集详解,不会的同学可以来瞅瞅,转载的,不过加了一些自己的理解。
  2. ElastAlert 邮件模板自定义
  3. Kodi中AirPlay 和 DLNA 无线串流投影以及开启方法
  4. LTE - UE Category和速率到底是什么关系?
  5. java获取视频时长
  6. 大牧絮叨设计模式:工厂方法模式
  7. 上海地铁事故人身损害赔偿办法
  8. IT项目管理 第七章 习题
  9. android shn1 获取_Android Studio获取开发版SHA1值和发布版SHA1值的史上最详细方法
  10. 声发射能量和事件参数的Excel VBA处理1/2