自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

smuggler_2003的专栏

smuggler什么意思?走私者也。象我们这样水平不到家的程序员不就是走私者么。

  • 博客(14)
  • 收藏
  • 关注

原创 设计模式学习笔记(十四)——结构型模式总结

结构型模式总结1、Adapter与Bridge:共同点:它们都给另一对象提供了一定程度上的间接性,有利于系统的灵活。都涉及到从自身以外的一个接口向这个对象转发请求。不同点:Adapter模式主要考虑2个已有接口不匹配的问题,它完全不考虑接口的实现,也不考虑它们各自如何演化。Adapter模式在类已经设计好以后实施。Bridge模式则对抽象接口与它的(可能是多个)实现部分进行桥接,使得你

2007-02-08 10:38:00 664

原创 设计模式学习笔记(十三)——Proxy代理

十二、Proxy(代理)情景举例:为其他对象提供一种代理以控制对这个对象的访问。四种常见情况:(1)远程代理(2)虚代理(3)保护代理(4)智能指针代码示例:/* 这个例子是虚代理的例子。*//* 代理类与实际类公共接口*/class Graphic {public:    virtual ~Graphic();/**/    virtual

2007-02-08 10:35:00 623

原创 设计模式学习笔记(十二)——Flyweight享元

十一、Flyweight(享元)情景举例:运用共享技术有效地支持大量细粒度的对象。代码示例:/* Flyweight抽象类。其操作中的GlyphContext下文会介绍*/class Glyph {public:    virtual ~Glyph();     virtual void Draw(Window*, GlyphContext&);/*

2007-02-08 10:34:00 676

原创 设计模式学习笔记(十一)——Facade外观

十、Facade(外观)情景举例:为子系统中的一组接口提供一个一致的界面代码示例:/* 系统中各种类*/class Scanner ;class Parser ;class ProgramNodeBuilder ;class ProgramNode ;class CodeGenerator ;class ExpressionNode : public P

2007-02-08 10:32:00 456

原创 设计模式学习笔记(十)——Decorator装饰

九、Decorator(装饰)情景举例:动态地给一个对象添加一些额外的职责。代码示例:/* 装饰与待装饰类共同的抽象类*/class VisualComponent {public:    VisualComponent();     virtual void Draw();    virtual void Resize();    // ...

2007-02-08 10:30:00 511

原创 设计模式学习笔记(九)——Composite组成

八、Composite(组成)情景举例:将对象组合成树形结构以表示“部分-整体”的层次结构。代码示例:/* 最关键的抽象类,涵盖了叶子与容器的接口*/class Equipment {public:    virtual ~Equipment();     const char* Name() { return _name; }/**/    v

2007-02-08 10:29:00 512

原创 设计模式学习笔记(八)——Bridge桥接

七、Bridge(桥接)情景举例:将抽象部分与它的实现部分分离,使它们都可以独立地变化。代码示例:/* 抽象部分的接口*/class Window {public:    Window(View* contents);     // requests handled by window    virtual void DrawContents();/

2007-02-08 10:26:00 513

原创 设计模式学习笔记(七)——Adapter适配器

六、Adapter(适配器)情景举例:解决类之间由于接口不匹配而不能复用的情况。代码示例:/* 目标类*/class Shape {public:    Shape();    virtual void BoundingBox(        Point& bottomLeft, Point& topRight    ) const;    virt

2007-02-08 10:24:00 512

原创 设计模式学习笔记(六)——创建型模式总结

创建型模式主要分为2种,一种是生成创建对象的类的子类的方法,对应于Factory Method模式,其优点是简单,相对于其他模式需要新的类,它只需要新的操作即可。人们通常将Factory Method作为一种标准的创建对象的方法。但这种方法的主要缺点是:仅仅为了改变产品类,就需要创建一个新的子类。最终造成子类庞大而无法管理。       另一种方法是定义一个对象负责明确产品对象的类,并将其作为

2007-02-08 10:18:00 809

原创 设计模式学习笔记(五)——Singleton单件

五、Singleton(单件)情景举例:保证仅有一个迷宫工厂的实例。代码示例:/* 注意静态函数和静态变量,它们实现了单件   构造函数设为protected以供子类访问,若没有子类可以设为private*/class MazeFactory {public:    static MazeFactory* Instance();     // exist

2007-02-08 10:17:00 532

原创 设计模式学习笔记(四)——Prototype原型

四、Prototype(原型)情景举例:创建一个可重用的建造迷宫程序。代码示例:/* 原型工厂继承自抽象工厂类*/class MazePrototypeFactory : public MazeFactory {public:    MazePrototypeFactory(Maze*, Wall*, Room*, Door*);/**/    virt

2007-02-08 10:16:00 590

原创 设计模式学习笔记(三)——Factory Method工厂方法

三、Factory Method(工厂方法)情景举例:创建一个可重用的建造迷宫程序。代码示例:class MazeGame {public:    Maze* CreateMaze();/**/// 以下4个方法为工厂方法:/**/    virtual Maze* MakeMaze() const        { return new Maz

2007-02-08 10:13:00 515

原创 设计模式学习笔记(二)——Build生成器

二、Build(生成器)情景举例:创建一个可重用的建造迷宫程序。代码示例:/* 用非抽象类来让客户只定义自己感兴趣的操作*/class MazeBuilder {public:    virtual void BuildMaze() { }    virtual void BuildRoom(int room) { }    virtual void Bui

2007-02-08 09:46:00 594

原创 设计模式学习笔记(一)——Abstract Factory抽象工厂

  终于读完了四人组的设计模式,感觉仍有很多地方不理解。果然不是读一次就完全理解的,这里写下一点笔记,整理一下心得,方便以后查阅。笔记主要以代码为主,并结合设计模式迷你手册一同查阅。(设计模式迷你手册中的代码完全照抄四人组的设计模式,但完全不加任何注释,看的晕晕的。)一、Abstract Factory(抽象工厂)情景举例:创建一个可重用的建造迷宫程序。代码示例:c

2007-02-08 09:33:00 603

空空如也

空空如也

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

TA关注的人

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