- 博客(17)
- 资源 (20)
- 收藏
- 关注
转载 C++设计模式实现--享元(Flyweight模式)
一、描述 设计模式中的享元模式,避免大量拥有相同内容的小类的开销(如耗费内存),使大家共享一个类(元类).问题 在面向对象系统的设计何实现中,创建对象是最为常见的操作。这里面就有一个问题:如果一个应用程序使用了太多的对象,就会造成很大的存储开销。特别是对于大量轻量级(细粒度)的对象,比如在文档编辑器的设计过程中,我们如
2014-06-30 16:17:39 829
转载 C++设计模式实现--中介者(Mediator)模式
一. 举例比如,现在中图和日本在关于钓鱼岛问题上存在争端。这时,联合国就会站出来,做为调解者,其实也没什么好调解的,钓鱼岛本来就是中国的,这是不争的事实!联合国也就是个传话者、发言人。结构图如下:代码如下:[cpp] view plaincopy//抽象国家 class Country { protected
2014-06-30 15:20:01 768
原创 C++设计模式实现--职责链(Chain of Responsibility)模式
一. 概述职责链模式:使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。将这些对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止。二. 举个例子员工要求加薪公司的管理者一共有三级:总经理、总监、经理,如果一个员工要求加薪,应该向主管的经理申请,如果加薪的数量在经理的职权内,那么经理可以直接批准,否则将申请上交给总监。总
2014-06-19 11:24:14 1420
原创 C++设计模式实现--桥接(Bridge)模式
一. 举例N年前:计算机最先出来时,软件和硬件是一绑在一起的,比如IBM出了一台电脑,上面有一个定制的系统,假如叫 IBM_Win,这个IBM_Win系统当然不能在HP电脑上运行,同样HP出的HP_Win系统也不能运行在IBM上。这时如果有一家新公司Apple出了一台新电脑,那么这个公司也要开发自己的系统 Apple_Win,Apple_Linux。其实
2014-06-18 10:58:44 2118 3
原创 C++设计模式实现--组合(Composite)模式
一. 举例这个例子是书上的,假设有一个公司的组结结构如下:它的结构很像一棵树,其中人力资源部和财务部是没有子结点的,具体公司才有子结点。而且最关健的是,它的每一层结构很相似。代码实现如下:#include #include #include using namespace std;//公司类,提供接口 class
2014-06-17 15:10:38 1238
原创 C++设计模式实现--备忘录(Memento)模式
一. 备忘录模式定义:在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可将该对象恢复到原先保存的状态。结构图:使用范围:Memento 模式比较适用于功能比较复杂的,但需要维护或记录属性历史的类,或者需要保存的属性只是众多属性中的一小部分时,Originator 可以根据保存的 Memento 信息还原到前一状态。
2014-06-17 11:50:20 1166
转载 C++设计模式实现--适配器(Adapter)模式
一. 定义适配器模式将一个类的接口转换成客户希望的另外一个接口,使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。Adapter 模式的两种类别:类模式和对象模式。二. 举例说明实际中,我们为了完成某项工作购买了一个第三方的库来加快开发。这个库可能都是一些.dll文件,这就带来了一个问题!我们在应用程序中已经设计好了接口,与这个第三方提供的接口不一致,为
2014-06-16 11:00:46 853
原创 C++设计模式实现--模板(Template)模式
一. 问题在面向对象系统的分析与设计过程中经常会遇到这样一种情况:对于某一个业务逻辑(算法实现)在不同的对象中有不同的细节实现,但是逻辑(算法)的框架(或通用的应用算法)是相同的。Template提供了这种情况的一个实现框架。二. 模式Template 模式是采用继承的方式实现这一点:将逻辑(算法)框架放在抽象基类中,并定义好细节的接口,子类中实现细节。
2014-06-13 16:00:25 1833
原创 C++设计模式实现--策略(Strategy)模式
一. 举例说明以前做了一个程序,程序的功能是评价几种加密算法时间,程序的使用操作不怎么变,变的是选用各种算法。结构如下:Algorithm:抽象类,提供算法的公共接口。RSA_Algorithm:具体的RSA算法。DES_Algorithm:具体的DES算法。BASE64_Algorithm:具体的Base64算法。在使用过程
2014-06-13 15:17:17 999
转载 C++设计模式实现--工厂模式
工厂模式属于创建型模式,大致可以分为三类,简单工厂模式、工厂方法模式、抽象工厂模式。听上去差不多,都是工厂模式。下面一个个介绍,首先介绍简单工厂模式,它的主要特点是需要在工厂类中做判断,从而创造相应的产品。当增加新的产品时,就需要修改工厂类。有点抽象,举个例子就明白了。有一家生产处理器核的厂家,它只有一个工厂,能够生产两种型号的处理器核。客户需要什么样的处理器核,一定要显示地告诉生产工厂。下面给出
2014-06-13 14:58:15 1034
转载 C++设计模式实现--外观(Facade)模式
一. 举例说明还以我以前做的文件系统(FileSys)为例:文件系统是一个独立的系统,它提供一套核心的文件操作。除了文件系统,还有四个子系统,分别是杀毒子系统(KillVirus),压缩子系统(ZipFile),加密子系统(EncrypeFile)和刻录子系统(BurnCD),这四个子系统相互独立,但又可以做为主系统功能的一部分。假设客户需要我这个文件系统有两种执行
2014-06-13 12:27:48 782
转载 CArchive 详解
CArchive没有基类。 CArchive允许以一个永久二进制(通常为磁盘存储)的形式保存一个对象的复杂网络,它可以在对象被删除时,还能永久保存。可以从永久存储中装载对象,在内存中重新构造它们。使得数据永久保留的过程就叫作“串行化”。 可以把一个归档对象看作一种二进制流。象输入/输出流一样,归档与文件有关并允许写缓冲区以及从硬盘读出或读入数据。输入/输出流处理一系列ASCII字符,但是归
2014-06-11 18:24:36 1511
原创 C++设计模式实现--观察者
概述 在软件构建过程中,我们需要为某些对象建立一种“通知依赖关系” ——一个对象(目标对象)的状态发生改变,所有的依赖对象(观察者对象)都将得到通知。如果这样的依赖关系过于紧密,将使软件不能很好地抵御变化。使用面向对象技术,可以将这种依赖关系弱化,并形成一种稳定的依赖关系。从而实现软件体系结构的松耦合。 意图 定义对象间的一种一对多的依赖关系,当一个对象的状态发生改
2014-06-11 14:42:37 1001
转载 C++设计模式实现--建造者
概述: 将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。UML结构图: 适用于以下情况: 1)当创建复杂对象的算法应该独立于该对象的组成部分以及它们的装配方式时。 2)当构造过程必须允许被构造的对象有不同的表示时。抽象基类: Builder基类是全部创建对象过程的抽象,提
2014-06-09 17:42:04 742
原创 C++设计模式实现--原型模式
一、概述: 用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。其中有一个词很重要,那就是拷贝。可以说,拷贝是原型模式的精髓所在。举个现实中的例子来介绍原型模式。找工作的时候,我们需要准备简历。假设没有打印设备,因此需手写简历,这些简历的内容都是一样的。这样有个缺陷,如果要修改简历中的某项,那么所有已写好的简历都要修改,工作量很大。随着科技的进步,出现了打印设备。我们只需手写
2014-06-09 17:40:41 721
转载 UML图 关系详解
UML中类图实例接口:空心圆+直线;关联:实线+箭头(企鹅需要知道气候才迁移);依赖:虚线+箭头(动物和空气的关系);聚合:空心四边形+实线+箭头(雁群和大雁的关系);合成/组合:实心四边形+实线+箭头(鸟和翅膀的关系);泛化/继承:空心三角形+实线(动物和鸟的继承关系);实现:空心三角形+虚线(实现大雁飞翔的接口);UML类图
2014-06-09 17:37:59 1357
原创 UML中类图的符号解释
在UML的定义中,描述类和对象之间的关系,包括以下几种方式:依赖(Dependency)、关联(Association)、聚合(Aggregation)、组合(Composition)、泛化(Generalization)和实现(Realization)。现分别说明如下: 1.依赖(Dependency)在uml中,“依赖”表示为带箭头的虚线,箭头指向被依赖的元素。是类与类之间的连接,
2014-06-09 17:33:31 1566
如何写一个批处理文件.dat.cmd
2016-01-18
C#调用MFC带窗口的Dll源代码
2015-09-11
sqlserver2008数据库实例练习
2012-11-25
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人