7.对象创建型模式-总结

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

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

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

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

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

原文地址:https://www.cnblogs.com/VincentXu/p/3348637.html