摘要: 转载网址:http://www.cppblog.com/andxie99/archive/2006/11/16/15196.html

   如果从哲学的观点来看,这大概要说是一种辩证关系了!

首先谈谈男人。男人与男孩的区别在于责任,对于一个男人来说,他的肩膀永远有负担,他要解决生活中遇到的所有问题,可以为妻儿带来幸福生活,可以赡养父母,可以做一些成就来创一番事业。所以男人不要轻生,因为你垮下就意味着你的负担没有了支撑,也就是你不负责任。男人的这种责任体现了一种刚性,打不倒压不垮,坎坎坷坷一路走来即使没有扬名立万但是肩膀上的负担始终没有落下。铮铮铁骨、铁血男儿、阳刚之美都是对男人的赞美,一个家庭男人是顶梁柱,这就是责任。

再谈谈女人。女人与女孩的区别在于柔情,少了撒娇和任性,多了体贴和温柔。女人是生活的调剂品,少了她尽管可以填抱肚皮、补充营养但食之无味。女人天生就是善于交际的,这本身体现的就是一种柔性,就像太极一样,以柔克刚,借助刚性体现柔美。

用建筑来形容男女关系,男人就像钢筋水泥搭建起来的框架承受着外力,女人则是对框架填补装修使其美观,不同的男人有着不同的建筑风格,不同的女人可以使建筑呈现不同的美。成功的男人背后都有一个女人,钢筋水泥加上精心装饰让人体会到设计之美,至于谁重要次要,谁表谁里都不是关键,关键的是刚柔的结合。

MFC

MFC是一个男人,从Microsoft C/C++ version 7.0到Visual Stduio.net 2005一直承担着软件框架设计的角色,风风雨雨路不回头,屹立在软件设计大道,为开发者提供便利,著名的BCG库和XTREME库都是在MFC源码基础上的改进。它大而繁杂,曲折通幽,粗旷豪放。它必须承担责任,提供软件设计的一套解决方案,而且背负着历史包袱,所以难免带有一些成熟男人的深邃而不被人理解。如果你还一味的去批判它,那只能说你不懂男人的心,不理解一个男人难言之苦。 ATL

ATL是一个女人,小巧灵活讨人喜爱,它作为COM思想的实现而拿出来解决软件协作的问题。它可以不具体实现功能而只留出一些接口,接口两端相通并且随时拔插,多么完美一个女人!为一个C++对象配备一个ATL对象你可以想象有什么结果嘛?

软件设计中的MFC与ATL

以前我一直以为ATL就是做控件、构造插件接口体系的,而MFC就是用来做界面功能。它们属于不同体系,在功能级别上存在差异,所以只是在纵向上结合而没有尝试横向的结合。人类社会是自然的,软件社会也应该是自然的。自然代表一种随和,亲近,协调。

提到MFC,八九不离十就涉及到软件界面开发。目前来说软件复用需求越来越高,而软件功能的不确定因素越来越大,一个特定的界面行为可能不确定。MFC是一个男人,用它可以做任何想做的界面,这就是它的刚性。但是我们到底是要去做什么还是告诉别人我们可以做什么呢?如果我们一味的做,那我们充其量只是一个莽夫,是吕布有勇无谋。我告诉你我有一个MFC对象,还告诉你它可以做什么,这样不就够了。

MFC是男人天生缺乏沟通能力,所以无法告知外界它自身的行为,只有它自己知道。这时候就需要一个管子插到对象内部去了解它,而ATL刚好提供了一个接口,将其一段插入MFC对象内部而露出另一端以便告知外界MFC对象内部的行为。这样的界面是可解释的界面,它具有做事情的能力,但是它不去做,而成为可复用界面。

转载于:https://www.cnblogs.com/rowp/archive/2011/10/07/2200391.html

从MFC与ATL的男女关系说起相关推荐

  1. 在VS中MFC、ATL与WIN32有什么联系或区别?

    有时候遇到一些初学者问我这个问题:在VS中使用MFC和ATL与使用WIN32有什么联系或区别?通俗来说,win32是通过调用windows api去实现需要的功能.而MFC和ATL是封装好的类库,包含 ...

  2. [COM/ATL]组件、对象、MFC、ATL的区别

    组件(Component)和对象(Object)之间的区别 先明确组件(Component)和对象(Object)之间的区别.组件是一个可重用的模块,它是由一 组处理过程.数据封装和用户接口组成的业务 ...

  3. VC(MFC、ATL)中 得到2个SYSTEMTIME时间差

    第一种方法: CTime 和CTimeSpan ,例如: // example for CTime::operator +, - CTime t1( 1999, 3, 19, 22, 15, 0 ); ...

  4. C++ STL,ATL,WTL之间的联系和区别

    STL即 Standard Template Library (标准模板库) STL是惠普实验室开发的一系列软件的统称.它是由Alexander Stepanov.Meng Lee和David R M ...

  5. STL,ATL,WTL之间的联系和区别

     STL即 Standard Template Library (标准模板库) STL是惠普实验室开发的一系列软件的统称.它是由Alexander Stepanov.Meng Lee和David ...

  6. 入侵oracle数据库时常用的操作命令整理

    首 页  系统问题系  图像网站系  办公应用系  编程开发系  数字艺术系  学院图酷  [ 视频中心  看精美图片  专题集锦  学院周刊 ] 操作系统 | 工具软件 | 病毒安全 | 多媒体 | ...

  7. ATL CLR MFC Win32 常规 的区别

    ATL用于编写COM程序,CLR是.NET的公共语言运行库,MFC是指MFC类库,MFC程序是用这些类库做出的程序,WIN32常规就是不用 MFC,使用API函数编的程序. MFC.ATL和CLR是V ...

  8. 什么是ATL? (与COM的关系,及MFC与COM的关系)

    什么是ATL (与COM的关系,及MFC与COM的关系) 自从1993年Microsoft首次公布了COM技术以后,Windows平台上的开发模式发生了巨大的变化,以COM为基础的一系列软件组件化技术 ...

  9. VC学习笔记---ATL MFC CLR三个库的区别

    MFC.ATL和CLR是VC2005内置的三大库,涵盖了Windows的各种开发方法和开发应用.当然关于C++开发的库不止这三个,不过这三个是微软推荐. 从编程所处层次而言,WIN32为最底层,其次是 ...

最新文章

  1. java之hiberante之集合映射之list映射
  2. rhino5.0安装教程
  3. 简述ie_apache_php_mysql的关系?,apache +php + mysql
  4. OpenCV特征检测Feature Detection
  5. webpack打包css文件
  6. git只提交一张图片_几张图让你彻底弄懂git工作流(三) ——git深入
  7. mysql procedure
  8. Mysql学习总结(27)——Mysql数据库字符串函数
  9. Html5 + fromData + Spring MVC 单文件、多文件上传
  10. 红帽linux6.8镜像下载,redhat8镜像下载
  11. 安卓如何隐藏root
  12. 关于IPad忘记密码恢复出厂设置的办法
  13. win10计算机无限弹网页,Win10老弹出窗口怎么回事?Win10持续闪现神秘窗口现象的解决办法...
  14. 在c语言中作为字符串结束标志是什么,字符串的结束标志是什么?
  15. 保龄球积分c语言程序,C语言保龄球积分.doc
  16. 电脑键盘上各个按键功能详解
  17. Shell脚本书写方法详解
  18. android分屏模式_Android分屏显示总结
  19. iOS中打一个包上传后,iTunes中找不到上传的包的解决方法
  20. mysql 数据备份

热门文章

  1. isnan 函数 -javascript1.1
  2. 数据结构上机实践第八周项目8-稀疏矩阵的三元组表示的实现及应用
  3. EnterCriticalSection 多线程操作相同数据遇到的问题(线程锁)
  4. caffe学习日记--lesson8:站在巨人的肩膀上, denny的学习专栏——徐其华——caffe
  5. asp网上书店的代码_使用Helm将ASP.NET Core应用程序部署到Kubernetes容器集群
  6. 汉字字符内码查询_计算机等级考试查询系统
  7. 895计算机专业基础,2017北京工业大学895计算机学科专业基础考研入学考试大纲...
  8. js 随机数_JS常用方法和一些封装:随机数生成
  9. mycat定时向mysql存储数据_【实战演练】Linux操作系统20-MyCat实现Mysql数据库读写分离与自动切换...
  10. 3层b+树索引访问磁盘次数_深入理解MySQL索引底层实现原理丨技术干货