首页计算机计算机软件设计模式 07 第四部分 构造器模式.pptx

07 第四部分 构造器模式.pptx

页数:14页文件大小:166.7 KB来源: 设计模式ppt课件

本课件讲解构造器、原型与单件三种创建型模式的适用场景与实现方式:构造器分离复杂对象的构造步骤,原型通过克隆创建对象,单件以静态成员函数控制唯一实例。

构造器模式(Builder Pattern)章节标题页,说明把复杂对象的构造过程与其表示分离
迷宫构造算法与变化需求,展示多种构建算法、部件关系与硬编码构建方式带来的问题
分离构造过程与表示的思路,把构建过程与具体构建算法拆开以复用同一构造流程
查看本课件的文字版(共 14 页,供检索与复制)

第1页:构造器模式(Builder)

4.5构造器模式

第2页:迷宫构造算法与变化需求

Some的多种构建算法

  • Product间的关系
  • 构建Some的硬编码

第3页:分离构造过程与表示

分离构建过程与算法

第4页:迷宫构造器示例代码

例

class MazeBuilder{ public: virtual void BuildMaze(){} virtual void BuildRoom(int room){} virtual void BuildDoor(int roomFrom,int roomTo) {} virtual Maze * GetMaze() { return 0; } }; Maze * Game::CreateMaze(MazeBuilder& builder) { builder.BuildMaze(); builder.BuildRoom(1); builder.BuildRoom(2); builder.BuildDoor(1,2); return builder.GetMaze(); };

第5页:构造器模式的效果

构造器模式效果

  • 隐藏了构建的细节和装配过程
  • 分离了构造代码和产品表示
  • 使用相同的产品,但使用不同的构造器,可以构造不同的复杂对象

第6页:原型方法模式(Prototype)

4.6原型方法

第7页:

第8页:原型方法模式的结构

原型方法结构

第9页:原型方法模式的说明与C++实现

说明

  • 可以通过一个”注册表”来记录全部实例对象
  • 增删注册表,就可以实现动态修改产品
  • 改变注册对象,可以相当于新定义一个产品类
  • 子类减少
  • Clone操作的实现问题

第10页:单件模式(Singleton)

4.4单件模式

  • 确保一个类仅有一个实例
  • 能够从外部访问它

第11页:单件模式的示例场景

例Class Singleton {Public:static Singleton * Instance();Protected:Singleton();Private:static Singleton * instance;};

第12页:单件模式的实现代码

Singleton * Singleton::instance = 0;Singleton * Singleton::Instance( ){if ( instance == 0)instance = new instance;return instance;}

第13页:单件模式的说明与获取方式

说明

  • 延迟式单件和饥饿式单件
  • 单件类的子类

第14页:

顶部目录