Aha!设计模式(26)-工厂方法(7)

2019-04-13 13:57发布

10. 代码示例   还是迷宫游戏的例子。不同的是这次是MazeGame自己构建迷宫。   由于是工厂方法模式,所以CreateMaze没有硬编码构建Wall,Room,Door等对象,而是分别调用虚函数MakeRoom,MakeRoor,MakeWall对象。   这个准备工作完成以后,我们就可以另外定义不同的游戏:     这两个派生类根据各自需要分别从新定义了MakeWall/MakeRoom和MakeRoom/MakeDoor方法,其代码如下:     代码本身非常简单,本文省略说明。   示例代码   上述例子代码可以利用以下链接下载:   https://github.com/xueweiguo/OOThinking/tree/master/Aha!DesignPattern/FactoryMethod   作者观点   为了增加构建对象的灵活性,工厂方法将构建对象的部分独立出来并定义虚函数。如果将这种方式外推,就是如下表述: 为了方便扩展某些处理,可以将该处理独立出来并定义虚函数。这是包含大部分设计模式的面向对象的最常用套路。   觉得本文有帮助?请分享给更多人。 阅读更多更新文章,请扫描下面二维码,关注微信公众号【面向对象思考】