zoukankan      html  css  js  c++  java
  • 7.对象创建型模式-总结

      前面介绍了一个创建迷宫的实现,首先介绍了一种最直接的实现,creator-也即MazeGame的CreateMaze()方法通过直接引用具体对象类来创建一个迷宫,这种通过硬编码的方式来创建对象存在可扩展性的问题,当创建其他类型的迷宫时需要修改CreateMaze()方法。

      为解决CreateMaze()方法硬编码具体对象类的问题,抽象工厂模式和生成器模式抽象了创建对象的过程,将创建对象的过程分装了MazeFactory和MazeBuilder,MazeFactory仅仅封装了具体对象的创建而MazeBuilder不仅封装了具体对象的创建,并且封装了组装对象的细节。同时抽象工厂模式和生成器模式参数化了创建对象的方法CreateMaze(MazeBuilder*)或CreateMaze(MazeFactory*)CreateMaze通过使用工厂或者生成器来创建对象或者组装对象

      工厂方法模式,MazeGame中引入了创建对象的工厂方法,CreateMaze()通过引用工厂方法来创建对象而不是直接引用具体对象类。通过派生MazeGame并重载工厂方法的实现,不需要修改CreateMaze()就可以创建新的迷宫。

      原型模式,创建对象的类实现clone()方法来克隆自己,使用原型来配置一个工厂,可以在不派生新的工厂类的情况下,创建新的迷宫。将抽象工厂实现为原型,参数化了工厂类,使用原型来配置一个工厂,增加了工厂类的灵活性。

      单件模式,可以保证抽象工厂类仅有一个实例,并且存在一个全局访问点。

  • 相关阅读:
    (转)asp.net页面出错时的处理方法
    Angular.js学习笔记 (二) H.U.C
    一套常用的css初始化样式 H.U.C
    hexo工具介绍及使用方法 H.U.C
    Angular.js学习笔记 (一) H.U.C
    Nhibernate 对view 查询的几种方法
    如何做类似google的Textbox的AutoComplete增强版,可以显示多列
    POS 打印机编程控制
    (转) 商品损耗控制
    win 2008 IIS 7 安装 PHPMYAdmin
  • 原文地址:https://www.cnblogs.com/VincentXu/p/3348637.html
Copyright © 2011-2022 走看看