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

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

  • 相关阅读:
    数据脱敏工具类
    oracle根据身份证号码 计算年龄、性别
    mysql 中通过身份证号码计算年龄
    解决POI读取Excel如何判断行是不是为空
    oralce 将浮点型字段,转为指定精度 并且四舍五入
    mysql too many connections
    spring boot @Transactional的一个小坑
    webpack4下url-loader打包图片问题
    使用extract-text-webpack-plugin插件后报错
    MySQL服务意外停止
  • 原文地址:https://www.cnblogs.com/VincentXu/p/3348637.html
Copyright © 2011-2022 走看看