VCer代码 VCer开源 VCer文章 VCer工具 VCer知道 VCer词典 VCer读书 VCer论坛   站点首页 我要张贴 控制面板
VCer代码 VCer开源 VCer文章 VCer工具 VCer知道 VCer词典 VCer读书 VCer论坛   站点首页 我要张贴 控制面板

目前位置: VCer资源中心 >>> VCer文章
子级分类: 软件工程 C++/MFC基础 Windows界面 网络与通信 图形图象处理 系统通信 数据库 文件系统 硬件/系统调用 开发工具 组件技术 其它技术
我来转发一篇文章!>>>


Visual C++.NET编程讲座之二
 
...摘要   本讲先来通过一个简单的MFC应用程序来介绍"类"的有关概念,然后分析其运行机制以及基本MFC类层次结构,最后使用项目模板所提供的MFC应用程序向导来创建一个单文档程序TextViewer。   一个简单的MFC应用程序   在现在的"面向对象"程序设计中,我们经常会听说过"类"和"对象"的概念。那么什么是"类"呢?"类"的实质上是一种新的复杂数据类型。说它"新",是因为它不同于C语言中的char、int、float等基本数据类型,说它"复杂",是因为它不仅可以包含各种基本类型的数据,而且还可以包含处理这些数据的函数。   MFC使用"类"来编写Windows应用程序,例如下面的过程:   (1) 单击"开始"页面中的"新建项目",或者打开"文件"菜单中的"新建",选择"项目"命令,都将弹出"新建项目"对话框。   (2) 在左侧的"项目类型"窗格中,选中"Visual C++项目"。在右侧的"模板"窗格中,拖动窗格右侧的滚动条显示其他模板,然后选中"Win32 项目"。   (3) 在"名称"文本框中,输入项目名称"Ex_1_SimpMFC",单击"确定"按钮,弹出"Win32 应用程序向导"对话框。   (4) 单击左侧的"应用程序设置"。选中"应用程序类型"中的"Windows 应用程序",在"附加选项"中选中"空项目",结果 ...
作者:Adding qiaoyongbo张贴于2007-12-21 15:28:39.0,共阅读760次,回复0
Visual C++.NET编程讲座之一
 
...Visual C++.NET编程讲座之一 作者:Adding 文章来源:yesky 点击数:5053 更新时间:2006-7-6 19:41:30   前言   本文先来较详细地讨论Visual C++的编程方式,然后讨论其学习方法,最后说明本讲座内容的编排。   Visual C++编程方式   2003年5月22日,微软隆重推出三个企业级的产品:Microsoft Windows Server 2003,Visual Studio.NET 2003和SQL Server 2000 企业版64位。Visual Studio .NET 2003是 Microsoft 的第二代开发工具,用于构建和部署Microsoft .NET 的软件。在这个最新平台上,包括了Visual C++、Visual Basic和Visual C#等开发工具。   Visual C++ .NET包括许多新的特性,如Web应用程序、托管C++扩展、ATL、DCOM、MFC等方面的增强以及ATL Server、Windows .NET Framework的支持等。   尽管如此,Visual C++在Windows桌面应用程序上的编程方法仍可分为两类:一类是非Window编程,如控制台程序(一种与早期DOS相兼容的程序,用来学习基本C++的编程思想),另 ...
作者:不祥 qiaoyongbo张贴于2007-12-21 15:26:32.0,共阅读773次,回复0
VC无闪烁刷屏技术的实现
 
VC无闪烁刷屏技术的实现 在实现绘图的过程中,显示的图形总是会闪烁,笔者曾经被这个问题折磨了好久,通过向高手请教,搜索资料,问题基本解决,现将文档整理出来以供大家参考. 1.显示的图形为什么会闪烁   我们的绘图过程大多放在OnDraw或者OnPaint函数中,OnDraw在进行屏幕显示时是由OnPaint进行调用的。当窗口由于任何原因需要重绘时,总是先用背景色将显示区清除,然后才调用OnPaint,而背景色往往与绘图内容反差很大,这样在短时间内背景色与显示图形的交替出现,使得显示窗口看起来在闪。如果将背景刷设置成NULL,这样无论怎样重绘图形都不会闪了。当然,这样做会使得窗口的显示乱成一团,因为重绘时没有背景色对原来绘制的图形进行清除,而又叠加上了新的图形。有的人会说,闪烁是因为绘图的速度太慢或者显示的图形太复杂造成的,其实这样说并不对,绘图的显示速度对闪烁的影响不是根本性的。例如在OnDraw(CDC *pDC)中这样写: pDC->MoveTo(0,0); pDC->LineTo(100,100);   这个绘图过程应该是非常简单、非常快了吧,但是拉动窗口变化时还是会看见闪烁。其实从道理上讲,画图的过程越复杂越慢闪烁应该越少,因为绘图用的时间与用背景清除屏幕所花的时间的比例越大人对闪烁的感觉会越不明显。比如:清楚屏幕时间为1s绘图时间也是为1s,这 ...
作者:不祥 qiaoyongbo张贴于2007-12-20 15:25:50.0,共阅读1126次,回复1
C++面向程序设计课程习题详解
 
作者:原野 killer张贴于2007-11-30 21:19:23.0,共阅读907次,回复1
白乔原创:艺术编程之C++篇[5]
 
4 编写快的代码——代码的效率性 程序的效率包括时间和空间上的效率,程序运行速度快,或者占用内存小,那么它的效率就高。 在640K内存时代,空间效率是很讲究的;但时过境迁,现在的内存动辄256M,必要的时候Windows还要动用虚拟内存,将上G的硬盘当着内存使,这样一来,空间效率就没有时间效率显得重要了。 所以,以下的内容只讨论程序的时间效率。 4.1 换机器还是改代码? 让程序跑得更快,要么改代码,要么换机器。程序员以固执著称,肯定选择后者;应用商有的是钱,升级打补丁毕竟要花时间,干嘛那么麻烦?所以他们大抵想都不想,大手一挥,“换一台1.2G的去……”——那么到底该换什么? 程序员的机器通常不是很好的机器(因为穷,或者机器的历史由来已久)。换机器不是程序员所赞成的做法,但对于功能性很强的商用程序,花费钞票购买更快的机器是很有必要的,也很能解决问题。过分地追求算法的效率,改进程序,很有可能带来副作用,如影响程序的兼容性、延误程序的开发进度和推广进度、引入更隐秘的错误等等。 当然,换机器通常是商家的事,而修改代码责无旁贷地是程序员的事。 4.2 衡量程序的时间效率 统计数据总是能更好地说明问题,测试程序的时间效率需要用到精确的时间函数,Windows系统定时器的精度(只能精确到 1 s)是不够的;函数GetTickCount()只能返回到ms级的时间(而且应该是只能 ...
作者:不祥 bluejoe张贴于2004-04-10 12:26:15.0,共阅读3352次,回复2
深入理解C语言指针的奥秘
 
指针是一个特殊的变量,它里面存储的数值被解释成为内存里的一个地址。 要搞清一个指针需要搞清指针的四方面的内容:指针的类型,指针所指向的 类型,指针的值或者叫指针所指向的内存区,还有指针本身所占据的内存区。让我们分别说明。 先声明几个指针放着做例子: 例一: (1)int*ptr; (2)char*ptr; (3)int**ptr; (4)int(*ptr)[3]; (5)int*(*ptr)[4]; 指针的类型 从语法的角度看,你只要把指针声明语句里的指针名字去掉,剩下的部分就是这个指针的类型。这是指针本身所具有的类型。让我们看看例一中各个指针的类型: (1)int*ptr;//指针的类型是int* (2)char*ptr;//指针的类型是char* (3)int**ptr;//指针的类型是int** (4)int(*ptr)[3];//指针的类型是int(*)[3] (5)int*(*ptr)[4];//指针的类型是int*(*)[4] 怎么样?找出指针的类型的方法是不是很简单? 指针所指向的类型 当你通过指针来访问指针所指向的内存区时,指针所指向的类型决定了编译器将把那片内存区里的内容当做什么来看待。 从语法上看,你只须把指针声明语句中的指针名字和名字左边的指针声明符*去掉,剩下的就是指针所指向的类型。 ...
作者:不祥 iter张贴于2007-06-13 17:03:44.0,共阅读1938次,回复1
白乔原创:实战软件DIY[6]
 
5. 实战成果 实战的成果就一个.exe安装文件,如图1所示。后续的内容就是你如何发布软件,如何销售软件,利用产品来为你赚钱(如果你还想要钱的话)。在知名的网站发布你的软件,或者登记注册你的软件,与感兴趣的商家主动联系也是好办法,好的idea,总会有明智的商家愿意掏钱与你合作。 FlashNow!至此还没有赚取一分钱的利润,FlashNow!1.05.20完全免费,FlashNow!的广告条还是虚席以待——但我仍希望有明智的商家(最好是经营Flash网站的)给我寄来热忱的协议书…… 软件商品化是你的事,笔者没有更好的经验。 6. 实战经验 本文到此结尾,有所收获吗?我希望你有。正如我前面所提醒的,软件开发过程是一个严谨完整的过程,各种理论在拼命地解释程序员各个阶段的行为并得出更新更枯燥的规则,各种软件开发工具也因此应运而生,要足够时髦,就必须掌握更多更新的工具。软件开发是学问,本文只尝试以浅显的语言和具体的实例来告诉读者朋友们一种组织软件开发的思路,仅仅如此。 实战结束了,以下的经验是我想带给你的: ² 不要急着编码。编码工作量不应该超过开发工作的百分之二十,成熟的系统设计会事半功倍; ² 不要忽视测试。测试应该至少要占工程的百分之三十,如果你不想做一个不负责任的软件牛仔的话,在经历足够的测试之后,再发布你的软件; ...
作者:不祥 bluejoe张贴于2004-04-25 11:44:39.0,共阅读3291次,回复3
用户界面设计的技巧与技术
 
对大多数人来说,用户界面就是软件本身。所以,掌握用户界面设计的技巧与技术是让软件走向市场的最直观因素。原文来源于http://www.ambysoft.com/userInterfaceDesign.pdf。 对于应用软件来说, 一个基本现实就是: 用户界面是面向用户的。用户需要的是开发者开发的应用软件满足其需求, 并且易于使用。太多的开发者自以为是艺术天才, 他们不去尽力遵循用户界面设计标准, 或花精力使得产品好用; 相反, 他们错误地认为编写更灵巧的代码或是使用一套确实有趣的颜色方案才是重要的事。Constantine(1995) 指出,好的用户界面使得人们不用阅读用户手册或接受培训就能使用应用软件。 界面设计的重要性有这么几个原因: 首先, 用户界面越直观, 就越易用, 越易用就越便宜。因为界面越好, 培训用户就越容易, 降低了培训成本; 界面越出色, 用户就越少求助, 降低了客户支持成本。其次, 界面越出色, 用户就喜欢使用, 增强了开发者工作的满意度。 一、用户界面设计的技巧与技术 本节所包含的用户界面设计技巧将有助于提高面向对象界面的设计。 1 、一致,一致,还是一致。你能做的最重要的事情就是保证用户界面运作的一致性。对于列表框来说,如果双击其中的项,使得某些事件发生,那么双击任何其它列表框中的项,都应该有同样的事件发生。所有窗口按钮的位置要 ...
作者:不祥 bluejoe张贴于2004-04-25 11:05:36.0,共阅读3912次,回复2
写一个函数,完成内存之间的拷贝。[考虑问题是否全面]
 
答:void* mymemcpy( void *dest, const void *src, size_t count ){ char* pdest = static_cast<char*>( dest ); const char* psrc = static_cast<const char*>( src ); if( pdest>psrc && pdest<psrc+cout ) 能考虑到这种情况就行了 { for( size_t i=count-1; i!=-1; --i ) pdest = psrc; } else { for( size_t i=0; i<count; ++i ) pdest = psrc; } return dest;}int main( void ){ char str[] = "0123456789"; mymemcpy( str+1, str+0, 9 ); cout << str << endl; system( "Pause" ); return 0;}本文转载自IT网it求职笔试真题库网。
作者:不祥 oases2008张贴于2005-01-01 00:00:00.0,共阅读1990次,回复2
InstallShield教程
 
上传了几次,每次10分钟还是上传不上不,也不晓得是什么原因,贴一个连接吧,ftp://vc:vc@218.197.202.143/,机子我每天都开着,连不连得上开个人的造化了,hoho
作者:不祥 Boyben张贴于2004-05-14 14:51:25.0,共阅读4923次,回复3
句柄大讨论(请各抒己见:)
 
在Windows程序设计中,句柄是无法精确定义的术语。随便找一个高手,让他给你讲讲句柄是什么,恐怕他都很难给你一个具体的定义来。 在Windows程序设计中,句柄无所不在,窗口有窗口的句柄HWND,线程和进程也有句柄HANDLE,甚至有人把套接字也称为句柄(我就是这样的)。 句柄在英文中是handle,作为动词讲是处理的意思。简而言之,句柄是处理对象的一个接口,对于程序中所涉及的对象,你可以通过句柄去操作他。你不应该试图去回答句柄是什么,而应该从务虚的角度去理解他,知道他干什么即可。 有人说,因为handle的定义是void *,因此他是一个指针。有些熟悉内核的人说这是一个索引。这些说法都是不准确的。需要注意的是,微软并没有精确定义句柄的含义,也许在某个特殊的操作系统中,他使用了一种内部含义,但是在其他版本中,就不保证这样了。任何对句柄的内在假设都可能导致灾难性的后果。 API是接口,句柄是接口,两者有什么区别?API是一个通用的函数族,他处理所有的对象,而句柄是和某个具体对象相关联的数据结构。只有借助句柄,API才知道处理哪个对象。 有些对象有ID。句柄表示特殊的对象,ID也表示某个对象,为什么要两个东西来表示? 首先,句柄不能唯一表示对象。一个对象可以有多个句柄。例如:假设我们用CreateProcess创建一个进程,该进程的第一个线程的句柄会返回给 ...
作者:阿荣 kgj2008张贴于2007-05-14 10:15:40.0,共阅读2039次,回复3
角色扮演游戏引擎的设计原理
 
角色扮演游戏引擎的设计原理 角色扮演游戏(RPG)是深受广大游戏迷们喜爱的一种游戏, 它以独特的互动性和故事性吸引了无数的玩家。它向人们提供了超出现实生活的广阔的虚拟世界,使人们能够尝试扮演不同的角色,去经历和体验各种不同的人生旅程或奇幻经历。这些体验都是在现实生活中无法实现的。在玩过许多游戏后,许多玩家都不再仅仅满足于一个游戏玩家的身份,而会思考游戏是如何制作的,并且打算制作一个自己的游戏,网上的各种游戏制作小组更是如雨后春笋般涌现。下面我就给大家介绍一下角色扮演游戏引擎的原理与制作,希望能对游戏制作爱好者有所帮助。 一 游戏引擎的原理 说到引擎,游戏迷们都很熟悉。游戏引擎是一个为运行某一类游戏的机器设计的能够被机器识别的代码(指令)集合。它象一个发动机,控制着游戏的运行。一个游戏作品可以分为游戏引擎和游戏资源两大部分。游戏资源包括图象,声音,动画等部分,列一个公式就是:游戏=引擎(程序代码)+资源(图象,声音,动画等)。游戏引擎则是按游戏设计的要求顺序的调用这些资源。 二 角色扮演游戏的制作 一个完整的角色扮演游戏的制作从大的分工来说可以分为:策划,程序设计,美工,音乐制作以及项目管理,后期的测试等。 策划主要任务是设计游戏的剧情,类型以及模式等,并分析游戏的复杂性有多大,内容有多少,策划的进度要多快等因素。 程序设计的任务是用某种编程 ...
作者:不祥 guifang张贴于2004-06-20 11:42:57.0,共阅读2723次,回复1
重读《Programmer》"C++之父"访谈
 
一:C++ 的新标准 1998年通过了C++的标准。而新的标准将会再2005年出现。我想到了Whidbey的推迟发步,是否是和这个新的标准有关系。 二:C++与嵌入式软件 嵌入式软件的定义:凡是在非传统的计算机上运行的软件都是属于这个领域。而嵌入式软件开发对PL的根本的要求是:运行时效率,内存使用率,以及可以预测性。而C++可以设计成在资源有限的情形下支持以上的意图。 a. 可预测性 当调用一个virtual函数的时候,其开销是完全可以预测的。同时,在使用局部变量,静态全局域中的对象时,对象开销可以很好预测。 b.内存使用 如需要使用动态的内存,则可以使用内存池;甚至可以使用GC(当然是在没有时间限制的情形下)。 c. 运行效率 使用C++可以设计完全不涉及到OO的代码,同时和标准C的良好的兼容也是选择其的原因。 关于C++运行时的效率问题,可以参考: http://arubis.dkuug.dk/jtc/sc22/wg21/docs/papers/2002/n1396.pdf 三:Managed C++ Herb Sutter 说 ISO 将会考虑采纳对M C++ 制定国际标准。 Dr. Stroustrup : 每个平台提供商都会对语言进行扩展,以便与平台与OS相兼容。而.NET的平台是和一般的C接口是不同。 四: ...
作者:beick iter张贴于2007-06-13 16:59:45.0,共阅读1322次,回复0
C++语言风格流变史
 
我确实没有见过哪一种语言能像C++这样,在代码风格方面表现得如此诡谲和难以捉摸:谁也说不清C++代码究竟能衍生出多少种迥异的风格,但我知道,有许多C++初学者在面对不同风格的C++代码时,经常会误以为自己看到的是好几种完全不同的编程语言??仅此一点就足以提醒我们,研究和廓清C++语言风格的演化和发展规律已是当务之急了。 程序代码也有风格,这算不得什么新鲜事。早在20世纪80年代, C语言程序员就必须在K&R风格和ANSI风格之间择善而从。但平心而论,我确实没有见过哪一种语言能像C++这样,在代码风格方面表现得如此诡谲和难以捉摸:谁也说不清C++代码究竟能衍生出多少种迥异的风格,但我知道,有许多C++初学者在面对不同风格的C++代码时,经常会误以为自己看到的是好几种完全不同的编程语言??仅此一点就足以提醒我们,研究和廓清C++语言风格的演化和发展规律已是当务之急了。 和文体学家们研究历朝历代文体变迁的工作相仿,研究C++语言风格的流变史也没有什么捷径可走。我们只能依据刘勰在《文心雕龙》中提倡的“原始以表末”[1]的研究方法,循着历史的脉络,推求代码风格的来源,探寻风格演化的内因,并借以阐明技术发展的趋势和规律。 1. 带类的C??对C语言风格的因袭 在1983年12月Bjarne Stroustrup采纳Rick Mascitti的建议,将其发明的新语言命名为“C++ ...
作者:王咏刚 iter张贴于2007-06-13 11:30:04.0,共阅读1646次,回复0
用DirectDraw编写动画程序
 
一.理论篇   说起DirectDraw也许大多数人还不知其为何物,但一提到DirectX恐怕每一个Computer Fan 和Game Fan都再耳熟不过了。(什么!你没听说过DirectX!?Oh,My god!来人哪,拉下去重责五十大板!)DirectX又叫Game SDK,它最大的特点是直接对硬件的抽象层(HAL)进行操作,利用这个特点可以制作出高性能的Windows游戏。具体信息请见http://www. microsoft.com/directx/default.asp。   DirectDraw就是DirectX5的6个组件之一。DirectX5的其它5个组件分别是:   Direct3D:提供了3D硬件接口。   DirectSound:立体声和3D声音效果,同时管理声卡的内存。   DirectPlay:支持开发多人网络游戏,并能处理游戏中网络之间的通信问题。   DirectInput:为大量的设备提供输入支持。   DirectSetup:自动安装DirectX驱动程序。   而DirectDraw则是DirectX的基石,DirectX的其它组件都是建立在它的基础之上的。DirectDraw使用页面切换的方法实现动画,它不仅可以访问系统内存,还可以访问显示内存,这是以往的Windows程序员所不能的。另外,我们利用DirectDraw还可以生成、移动、剪切、 ...
作者:不祥 jerry张贴于2004-06-11 09:48:45.0,共阅读3236次,回复1
!求助!朋友们请帮忙!!!
 
最近在学习Visual C++界面编程! 不知道怎样将一段文字显示在EDIT类型的窗口界面上???? 不知道调什么函数?还望大家指点!! 本人不尽感激!! 谢谢!! 方便的话清回复邮箱:Romid@163.com 或者直接回复该帖!! 谢谢!!
作者:A*C*C年 Romid张贴于2007-05-17 13:19:49.0,共阅读1547次,回复2
探察RUNTIME_CLASS的秘密
 
学mfc学到文档,视图和框架的时候,知道必须在这三个类的派生类的类声明 里加上DECLARE_DYNCREATE,然后在类声明外合适的地方加上IMPLEMENT_DYNCREA TE,然后文档,视图和框架,还有文档模板就可以协调工作了。查看msdn,发现 类似的宏有这几对: DECLARE_DYNAMIC 和 IMPLEMENT_DYNAMIC DECLARE_DYNCREATE 和 IMPLEMENT_DYNCREATE DECLARE_SERIAL 和 IMPLEMENT_SERIAL 虽然msdn里介绍了他们的作用,但对于它们为什么会起这样的作用心里却没 底,于是翻了翻mfc的源代码,喜欢钻牛角尖的人可以和我一起来钻一钻。 1。 RUNTIME_CLASS宏的定义是这样的: #define RUNTIME_CLASS(class_name) ((CRuntimeClass*)(&class_name::class##class_name)) 其中##的意思是把##两边的符号都进行宏扩展(如果它们是宏的话),然后把扩展 后的内容连接在一起,中间不加空格。例如:RUNTIME_CLASS(CView)将被扩展成 : (CRuntimeClass*)(&CView::classCView) 但这个classCV ...
作者:chiefman kgj2008张贴于2007-05-14 21:19:42.0,共阅读1715次,回复0
白乔原创:艺术编程之C++篇[3]
 
2 编写稳的代码——代码的鲁棒性 “没有最稳,只有更稳”,几乎没有一个程序是完全稳定的,简单的HelloWorld在内存吃紧的时候也可能会束手无策。但,我们的目的是让程序更稳定一点…… 2.1 小心掉下去——错误陷阱 一切从小事开始,在C++语言里,存在着很多危险的错误陷阱,就像《雷电II》里面的漩涡,一不小心就会掉进去——只有学会正确地避免它们,才能将程序的危险性降低到最低限度。 以下内容介绍常见的错误陷阱: 2.1.1 奇怪的表达式(expression) 嗯,看一看下面的表达式: int i = 100; i += i = 10 + ++i + i + i++; 这是完全合法的一例表达式,知道该死的i会有什么样的值? 这是常见的面试题中的一种,许多老师和招聘单位总会拿出这样的表达式来整人并藉以炫耀,常常让人想到孔乙己:“你知道茴字有几种写法?” 写出这样的表达式是不负责任的,不同的编译器很有可能会得出不同的结果。不缺德的程序员应该避免这样的写法。否则,会有想象不到的灾难来临。 使用表达式时最好遵循以下规则: 不要过分地依赖于各操作符的优先权,在必要的时候使用括号()。如: bool bValue = (i > j) && (i < 0 || j < 0); 不要过分地依赖于表达式的赋值顺序,如尽量少用++i,++j等。 if语句谨防“= ...
作者:不祥 bluejoe张贴于2004-04-10 11:55:09.0,共阅读4312次,回复2
解读VC++编程中的文件操作API和CFile类
 
在VC编程中,操作文件的方法主要有两种:利用API函数和MFC的CFile类。微软在其中封装了文件的一般操作,下面我就介绍一下如何利用这两种方法实现文件操作。 1.创建或打开一个文件 API函数CreateFile可打开和创建文件、管道、邮槽、通信服务、设备以及控制台,但是在此时只是介绍用这个函数怎么实现创建和打开一个文件。 HANDLE CreateFile( LPCTSTR lpFileName, // 要打开的文件名 DWORD dwDesiredAccess, // 文件的操作属性 DWORD dwShareMode, // 文件共享属性 LPSECURITY_ATTRIBUTES lpSecurityAttributes,// 文件安全特性 DWORD dwCreationDisposition, //文件操作 DWORD dwFlagsAndAttributes, // 文件属性 HANDLE hTemplateFile // 如果不为零,则指定一个文件句柄。新文件将从这个文件中复制扩展属性 ); 文件的操作属性:如果为零,表示只允许获取与一个设备有关的信息,GENERIC_READ 表示允许对设备进行读访问;如果为 GENERIC_WRITE 表示允许对设备进行写访问(可组合使用); 文件的共享属性:零表示不共享; ...
作者:不祥 iter张贴于2007-03-13 14:32:17.0,共阅读5164次,回复0
java关于23种设计模式的有趣见解
 
java里23种设计模式,对VC设计来说应该一样通用。与大家共享之: 创建型模式 1、FACTORY 追MM少不了请吃饭了,麦当劳的鸡翅和肯德基的鸡翅都是MM爱吃的东西,虽然口味有所不同,但不管你带MM去麦当劳或肯德基,只管向服务员说“来四个鸡翅”就行了。麦当劳和肯德基就是生产鸡翅的Factory 工厂模式:客户类和工厂类分开。消费者任何时候需要某种产品,只需向工厂请求即可。消费者无须修改就可以接纳新产品。缺点是当产品修改时,工厂类也要做相应的修改。如:如何创建及如何向客户端提供。 2、BUILDER MM最爱听的就是“我爱你”这句话了,见到不同地方的MM,要能够用她们的方言跟她说这句话哦,我有一个多种语言翻译机,上面每种语言都有一个按键,见到MM我只要按对应的键,它就能够用相应的语言说出“我爱你”这句话了,国外的MM也可以轻松搞掂,这就是我的“我爱你”builder。(这一定比美军在伊拉克用的翻译机好卖) 建造模式:将产品的内部表象和产品的生成过程分割开来,从而使一个建造过程生成具有不同的内部表象的产品对象。建造模式使得产品内部表象可以独立的变化,客户不必知道产品内部组成的细节。建造模式可以强制实行一种分步骤进行的建造过程。 3、FACTORY METHOD 请MM去麦当劳吃汉堡,不同的MM有不同的口味,要每个都记住是一件烦人的事情,我一般采用Fact ...
作者:不祥 bluejoe张贴于2007-01-31 16:14:05.0,共阅读1752次,回复0

页次: 2/10页 记录总数189 9 7 [ 1 2 3 4 5 6 7 8 9 10 ] 8 :