自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

轨迹的专栏

go to bed with dream, wake up with perpose

  • 博客(15)
  • 资源 (4)
  • 收藏
  • 关注

原创 23种设计模式(Momento模式)

1、问题场景 场景: 在程序设计中,我们要给客户又反悔的权利,诸如撤销等。 问题: 怎么来实现这种后悔药呢?? 2、解决办法 备忘录模式:在不破坏封装性的前提下,捕获一个对象的内部状态,饼子啊该对象之外保存,这样以后可以将对象恢复到以前的状态。例如操作系统中常有的F8,数据库中常见的回滚和数据恢复等。呈现形式Originator是Memento的友元,这样保证想恢复时,可以重新创建Me

2015-04-05 12:45:35 491

原创 23种设计模式(Observer模式)

1、问题场景 场景: MFC中典型的文档视图框架以及MVC等,通过一种关系将他们关联在一起,并根据需要改变状态。 问题: 当一个对象依赖多个对象时,怎么做到一个变化,依赖的所有对象都随之发生相应的变化呢? 2、解决办法 观察者模式:定义对象间一对多的依赖关系,当一个对象那个发生变化时,所有依赖都得到通知或自动更新。 UML图: 优缺点:通过依赖关系,及时的改变依

2015-04-05 12:29:08 305

原创 23种设计模式(State模式)

1、问题场景 场景: 每个事物在不同的状态下有不同的表现动作,儿一个状态又会在不同的表现下转移到另一种状态。 问题: 对于状态的转换可以通过switch/case等方式解决,但是数据过多的逻辑判断则是不行的,怎么解决这样的状态转换呢?? 2、解决办法 状态模式:允许一个对象那个在其内部改变时改变它的状态,也就是说当一个操作需要大量维护一个case分支时,可选择这种模式将这些分支的依赖放

2015-04-05 12:01:31 361

原创 23种设计模式(Template模式/Strategy模式)

1、问题场景 场景: 在面向对象那个设计实现中,比如某一个业务逻辑在不同的细节中有不同的实现,但是逻辑的框架是一致的, 问题: 通过继承怎么来设计逻辑框架? 2、解决办法 模板模式:定义操作算法的一个骨架,而将这些操作步骤延迟到子类当中,使得子类可以根据需要重新定义算法执行步骤(算法可理解为业务流程) UML图: 优缺点:模板可以提取公共的行为,以达到复用的目的

2015-04-05 09:09:56 407

原创 23种设计模式(Proxy模式)

1、问题场景 场景: 在应用系统中,常常防止由于系统的扩大而产生的内存泄露,定义大量对象时采用智能指针来管理大量用户自定义对象来避免内存泄露问题。 问题: 智能指针内部是怎么实现的呢?? 2、解决办法 代理模式:为其他对象提供一种代理以控制客户对对象的访问。直接一点就是客户并不想直接使用对象,需要一个中间负责管理者管理对象的一些其他的问题,客户只关心他们想要的部分。(中介) UML图

2015-04-05 08:54:15 290

原创 23种设计模式(Facade模式)

1、问题场景 场景: 软件系统开发中,可能你定义了一些接口,但是这些接口在不同的模块中实现,客户在使用你的接口时并不知道你的接口在哪里组合实现的。典型的例子就是数据库连接。 问题:怎么来设计这组统一的接口,保证这组接口更容易被使用? 2、解决办法 门面模式:为子系统中的一组接口提供一个一致的界面。门面模式定义了一组高层接口,使得一个子系统更加容易使用、 UML图:

2015-04-05 08:30:58 272

原创 23种设计模式(FlyWeight模式)

1、问题场景 场景: 在面向对象系统的设计实现中,创建对象是最为常见的操作。 问题: 如果一个应用程序使用了太多的对象,会造成很大的存储开销,特别是一些 重复操作的对象。怎么设计来减少这种由于重复对象带来的系统开销呢? 2、解决办法 享元模式:采用一个共享类来避免大量拥有相同内容的“小类”的开销。享元分为两种---内蕴(共性)和外蕴(个性) UML图: 优缺点:

2015-04-04 22:20:58 351

原创 23种设计模式(Composite模式)

1、问题场景 场景: 在开发中,经常可能要递归构建树状的组合结构。 问题: 怎么设计实现“部分--整体”的整体结构,希望用户忽略组合对象和单个对象的不同,统一使用组合机构中的所有对象。 2、解决办法 组合模式:将对象以树形结构组织起来,已达成“部分-整体”的层次结构,使得客户对单个对象和组合对象使用具有一致性。它的呈现形态:客户可以直接使用叶子节点Leaf或者使用Component构建

2015-04-02 23:54:48 292

原创 23种设计模式(Adapter模式)

1、问题场景 场景: 软件开发过程中,为了快速完成项目需求,会购买第三方库加快开发进度,为了使第三方库和我们的系统兼容,需要做一些变更中间件工作。 问题: 用什么样的方式来适应不同的第三方库库来构建中间件实现兼容。 2、解决办法 适配器模式:将一个类的接口转换成客户希望的另一个接口,实现原本不兼容的类可以通过适配器而兼容使用。换句话说就是做中间转换器。适配器分两大类:类适配器、对象

2015-04-02 23:09:38 428

原创 23种设计模式(Bright模式)

1、问题场景 场景: 软件设计中最头疼的就是需求变化。不是有句话:杀一个程序员不需要动刀,改几次需求即可。面对这样那样的变动,仅靠不停地修改代码,并开始新一轮的测试。 问题: 怎样设计出由于需求变更而带来的代码推翻重来的问题呢。 2、解决办法 桥梁模式:将抽象部分与它的实现部分进行分离,使他们可以独立的变化。这里的抽象和实例不是我们通常都认为的父--子继承关系。接口与实现的关系,而

2015-04-02 22:41:32 648

原创 23种设计模式(Prototype模式)

1、问题场景 场景:C++中常用的拷贝构造,实现复制一个相同的自己。 问题:拷贝存在深拷贝和浅拷贝,怎么样实现新对象的创建可以通过已有对象进行创建。 2、解决办法 原型模式:用原型实例指定创建对象的种类,通过拷贝实现新对象的创建。它的呈现形式:Java中提供方法Clone(),C++中通过拷贝构造函数。 UML图: 优缺点:符合“开闭原则”,类似于工厂模式,不同点是

2015-04-02 17:18:48 361

原创 23种设计模式(Builder模式)

1、问题场景 场景:组装一台电脑,装机人员不管你是什么牌子型号的模块,都能快速装成一台电脑。对于客户来说,装机的细节基本不考虑,只关心最终的成品。 问题:当我们要创建很复杂的对象(多模块组合而成)的时候,怎么样实现对象创建过程和对象的表现形式分离开来,实现低耦合,高内聚。 2、解决办法 建造模式:将一个复杂独立的构造与它的表现形式分离,使得同样的构造过程可以创建不同的表现形式。换句话说

2015-04-02 16:22:57 327

原创 23种设计模式(Singleton 模式)

1、问题场景 场景:设计范式中,一个对象实现被全局共享。换句话说就是保证一个类只有一个实例对象,并提供一个可供全局访问点。 问题:在设计范式中,我们要怎么样设计去创建一个唯一的变量(对象)。 2、解决办法 单例又叫单态或者单件。它即实现了一个类只有一个实例,并提供一个全局访问点。它的呈现形式:构造函数私有化(private / protected),并提供一个属于类本身的方法(static

2015-04-02 12:46:05 396

原创 23种设计模式(Factory模式)

1、问题场景 场景:为了高内聚、低耦合,我们经常抽象一些公共的接口形成基类或者接口。这样我们可以通过基类指针指向实现了virtual方法的子类,实现动态绑定。 问题:(1)、复杂的系统中,子类命名会成为一个头疼的问题,因为当父类指向子类的时候需要确切的知道子类的实例对象;程序的扩展性会变差,维护也变得困难。   (2)、父类有时候并不知道具体要实例的哪一个具体的子类。 2、解决办法 工厂

2015-04-02 10:20:28 448

原创 工作一年的我

2012年12月10日,我永远记得那一天。第一次开始走入社会,参加工作。说实话,第一家公司没抱希望,因为连续一个多月的笔试、面试,已经真的是疲惫不堪了,当初他们招的职位是:软件工程师,我去了。面试没什么特别的,笔试大概一个小时,都是些C++的基础和一些算法类的,当然复杂的地质方面的算法听都没听过,所以笔试做得一般。完毕,交卷,老大看了之后,回复我:你拿回家继续做,可以查资料、翻书、找朋友帮忙做,希

2014-06-09 02:10:14 533

API函数查询

全面的API函数介绍,方便查询你所需要的各种windows平台下的API,辅助你进行快速开发。值得拥有

2013-07-05

C++常用函数查询

在里边你可以查询到常用的一些函数,同时还有STL的具体介绍,以及一些示例代码,值得拥有

2013-07-05

VC对数据库数据的操作

介绍了利用VC++6.0 对Access 数据库中OLE 图像字段的读写方法。详细介绍了在VC++6.0 中读取OLE字段图像到缓冲区、将缓冲区图像显示Picture 控件、将Picture 控件中图像写入OLE 字段的方法,并给出这些方法的应用实例。

2013-07-05

软件设计文档

对整个软件工程的文档设计的全面模板,全面的介绍怎么写这个设计文档,技术细节

2012-10-11

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除