
设计模式
子庚
加油
展开
-
C++设计模式之ProtoType
Prototype模式并不是简简单单一个clone方法,Prototype模式的意义在于动态抽取当前对象运行时的状态,同时通过提供统一的clone接口方法,使得客户代码可以在不知道对象具体类型时仍然可以实现对象的拷贝,而无需运用type-switch检测对象的类型信息来分别调用创建方法来创建一个新的拷贝。 使用Prototype模式,在需要复制自身来创建新产品,不需要对象的实际类型转载 2013-03-08 14:15:42 · 927 阅读 · 0 评论 -
模板模式
一、概述在软件开发中,对某一项操作往往有固定的算法结构,而具体的子步骤会因为不同的需要而有所不同。如何可以在稳定算法结构的同时来灵活应对子步骤变化的需求呢?二、模板方法模板方法是一种常见的设计模式,它定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。模板方法的结构图如下AbstractClass是抽象类转载 2013-03-27 20:50:33 · 750 阅读 · 0 评论 -
门面模式(facade pattern)
C#面向对象设计模式纵横谈:Facade 外观模式作者: 山天大畜 来源: 博客园 发布时间: 2010-11-03 17:41 阅读: 647 次 推荐: 0 原文链接 [收藏] 系统的复杂度 假设我们需要开发一个坦克模拟系统用于模拟坦克车在各种作战环境中的行为,其中坦克系统由引擎、控制器、车轮、车身等各子系转载 2013-04-02 22:46:04 · 761 阅读 · 0 评论 -
策略模式
二、 策略模式的结构策略模式是对算法的包装,是把使用算法的责任和算法本身分割开,委派给不同的对象管理。策略模式通常把一个系列的算法包装到一系列的策略类里面,作为一个抽象策略类的子类。用一句话来说,就是:"准备一组算法,并将每一个算法封装起来,使得它们可以互换。"策略又称做政策(Policy)模式【GOF95】。下面是一个示意性的策略模式结构图: 这个模式涉及到三个角色:环境转载 2013-03-19 21:37:20 · 845 阅读 · 0 评论 -
代理模式
一、 代理(Proxy)模式代理(Proxy)模式给某一个对象提供一个代理,并由代理对象控制对原对象的引用。代理模式的英文叫做Proxy或Surrogate,中文都可译成"代理"。所谓代理,就是一个人或者一个机构代表另一个人或者另一个机构采取行动。在一些情况下,一个客户不想或者不能够直接引用一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。二、 代理的种类如果按照使转载 2013-03-19 21:59:48 · 952 阅读 · 1 评论 -
state模式
一、概述在面向对象软件设计时,常常碰到某一个对象由于状态的不同而有不同的行为。如果用if else或是switch case等方法处理,对象操作及对象的状态就耦合在一起,碰到复杂的情况就会造成代码结构的混乱。在这种情况下,就可以使用状态模式来解决问题。二、状态模式状态模式允许一个对象在其内部状态改变时改变它的行为,使对象看起来似乎修改了它的类。状态模式的结构图如下转载 2013-03-19 14:45:32 · 763 阅读 · 0 评论 -
State模式详解
无废话C#设计模式之十六:State 意图 允许一个对象在其内部状态改变时改变它的行为。对象看起来似乎修改了它的类。 场景 我们在制作一个网上书店的网站,用户在书店买了一定金额的书后可以升级为银会员、黄金会员,不同等级的会员购买书籍有不同的优惠。你可能会想到可以在User类的BuyBook方法中判断用户历史消费的金额来给用户不同的折扣,在转载 2013-03-19 15:08:34 · 1275 阅读 · 0 评论 -
适配器模式
结构模式(Structural Pattern)描述如何将类或者对象结合在一起形成更大的结构。结构模式描述两种不同的东西:类与类的实例。根据这一点,结构模式可以分为类的结构模式和对象的结构模式。后续内容将包括以下结构模式:适配器模式(Adapter):Match interfaces of different classes合成模式(Composite):A tree structur转载 2013-03-16 21:12:13 · 651 阅读 · 0 评论 -
组合模式
组合模式2012-01-29 17:02 1111人阅读 评论(0)收藏 举报stringclassc存储null目录(?)[+]一组合模式简介Brief Introduction二解决的问题What To Solve三组合模式分析Analysis组合模式结构源代码程序运行结果四案例分析Example场景代码五总结Summar转载 2013-03-14 13:36:33 · 754 阅读 · 0 评论 -
桥模式精解
抽象与实现抽象不应该依赖于实现细节,实现细节应该依赖于抽象。问题在于如果抽象B由于固有的原因,本身并不稳定,也有可能变化,怎么办? 举例来说假如我们需要开发一个同时支持PC和手机的坦克游戏,游戏在PC和手机上功能都一样,都有同样的类型,面临同样的功能需求变化,比如坦克可能有很多种不同的型号:T50,T75,T90……对于其中的坦克设计,我们可能很容易设计出来一个Tank转载 2013-03-14 14:52:47 · 861 阅读 · 0 评论 -
装饰模式 .
[+]一装饰模式简介Brief Introduction二解决的问题What To Solve三装饰模式分析Analysis装饰模式结构源代码程序运行结果四案例分析Example五总结Summary一、装饰模式简介(Brief Introduction)动态地给一个对象添加一些额外的职责。优点:把类中的装饰功能从类中搬移出去,这样可以简化原有的类。有效地转载 2013-03-14 13:23:10 · 909 阅读 · 0 评论 -
享元模式 flyweight
享元模式的定义:用共享的技术有效地支持大量细粒度的对象。认识享元模式:1、变与不变享元模式的设计重点就在于分享变与不变。把一个对象分离为内部状态和外部状态,内部状态是不变的,外部状态是可变的。然后通过共享不变的部分,以达到节约空间的目的。2、共享与不共享在享元模式中,又有共享和不共享之分。有时还可以把共享的享元对象组合成一个组合对象,这样的组合对象可以不用共原创 2015-05-11 23:16:48 · 681 阅读 · 0 评论