使用工厂方法模式的改进代码和源工程

使用工厂方法模式的改进代码和源工程

文末有本文的源码和源码工程,朋友们可以自行前往。

1. 工厂方法模式的相关概念 2. 不使用工厂方法模式的糟糕代码

假设我们正在开发一款 2D 游戏,其中需要创建许多不同类型的敌人。 如果没有工厂模式游戏开发设计模式,我们可能会创建一个函数来手动实例化这些敌人,如下所示:

游戏开发设计模式_游戏开发设计模式_开发模式设计游戏案例

测试代码如下:

游戏开发设计模式_开发模式设计游戏案例_游戏开发设计模式

检测结果:

如果我们添加一个新的外星敌人,我们需要在构造函数中添加相应的代码,以及初始化外星敌人的相关操作:

游戏开发设计模式_开发模式设计游戏案例_游戏开发设计模式

添加测试代码:

游戏开发设计模式_开发模式设计游戏案例_游戏开发设计模式

测试结果如下:

这段代码存在一些问题:

代码臃肿:随着敌人类型数量的增加,构造函数会变得越来越复杂且难以维护。

违反开闭原则:每次添加新的敌人类型时,都需要修改构造函数,这违反了开闭原则(开放用于扩展,关闭用于修改)。

可读性差:代码不容易阅读和理解,因为创建不同类型敌人的逻辑混合在一起。

3.使用工厂方法模式改进代码

现在,让我们使用工厂方法模式改进此代码。 工厂方法模式将对象创建转移到单独的工厂类中,每个具体对象类型都有自己的工厂。 这是使用工厂方法模式的改进代码:

游戏开发设计模式_开发模式设计游戏案例_游戏开发设计模式

测试代码如下:

游戏开发设计模式_游戏开发设计模式_开发模式设计游戏案例

测试结果如下:

如果我们添加一个新的外星敌人,我们只需要创建一个特定的外星敌人类和一个特定的外星敌人工厂:

游戏开发设计模式_开发模式设计游戏案例_游戏开发设计模式

添加测试代码:

游戏开发设计模式_游戏开发设计模式_开发模式设计游戏案例

测试结果如下:

通过使用工厂方法模式,我们提高了代码的质量:

更清晰的代码:创建对象的逻辑已移至工厂类,使代码更清晰、更易于理解。

遵守开闭原则:添加新的敌人类型只需要创建新的敌人类和相应的工厂方法,无需修改现有代码,符合开闭原则。

更容易扩展:可以轻松添加新的敌人类型,而不会影响现有代码。

结论

工厂方法模式是游戏开发中常用的设计模式之一。 它可以帮助我们更好地组织和管理对象创建过程游戏开发设计模式,提高代码的可维护性和可扩展性。 通过遵循这种模式程序开发材质材料,开发人员可以更轻松地适应游戏项目不断变化的需求,同时保持代码整洁和可读。

文章来源:http://mp.weixin.qq.com/s?src=11×tamp=1706839733&ver=5055&signature=Siy3sd-*JvmUWrmCqzvqxVrVF6e*Blo*Q8UQ-W898n*nTGxBW4Au4qtgrqHhwegkxMih125dLbW5kgGsC257qUtjGGaHtgBrLOqqmw0SHKPX0CmNK8qIYMG5dpfXoDTL&new=1