当前位置: 首页 > news >正文

建设网站翻译英文翻译微信公众号前端开发流程

建设网站翻译英文翻译,微信公众号前端开发流程,广告传媒公司有哪些,如何搭建网站的结构引言 大家好,我是亿元程序员,一位有着8年游戏行业经验的主程。 本系列是《和8年游戏主程一起学习设计模式》,让糟糕的代码在潜移默化中升华,欢迎大家关注分享收藏订阅。 在游戏开发中,代码的组织和结构对于项目的可…

引言

大家好,我是亿元程序员,一位有着8年游戏行业经验的主程。

本系列是《和8年游戏主程一起学习设计模式》,让糟糕的代码在潜移默化中升华,欢迎大家关注分享收藏订阅。

在游戏开发中,代码的组织和结构对于项目的可维护性和可扩展性至关重要。一个常见的设计模式,工厂方法模式,可以帮助我们更好地管理游戏对象的创建。本文将介绍工厂方法模式,并通过一个示例来展示如何使用它来改善代码质量。
本文源码和源工程在文末获取,小伙伴们自行前往。

1.工厂方法模式的相关概念

  • 工厂方法模式:一种创建型设计模式,它提供了一种将对象的创建过程封装在子类中的方式,以便在不改变父类代码的情况下创建多个具体类型的对象。该模式将对象的实例化延迟到子类中,从而使得客户端代码不必关心要创建的具体对象类型,只需要通过调用工厂方法来获取对象即可。
  • 开闭原则:面向对象编程中的一个重要设计原则,它由著名的计算机科学家伯特兰·梅耶(Bertrand Meyer)提出,并被引入到软件工程的设计中。开闭原则的核心思想是:对扩展开放和对修改关闭。
  • 对扩展开放(Open for Extension):这意味着在不修改已有代码的情况下,应该能够扩展系统的功能。新功能应该通过添加新的代码来实现,而不是通过修改已有代码。
  • 对修改关闭(Closed for Modification):这表示一旦一个软件实体被创建并投入使用,就不应该再修改它的源代码。任何变化都应该通过扩展而不是修改现有代码来实现。

2.不使用工厂方法模式的糟糕代码

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

测试代码如下:

测试结果:

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

新增测试代码:

测试结果如下:

这段代码存在一些问题:

  1. 代码臃肿:随着敌人类型的增多,构造函数会变得越来越复杂,难以维护。
  2. 违反开闭原则:每次添加新的敌人类型都需要修改构造函数,违反了开闭原则(对扩展开放,对修改关闭)。
  3. 可读性差:代码不易阅读和理解,因为创建不同类型的敌人的逻辑混在一起。

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

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

测试代码如下:

测试结果如下:

如果我们新增加一个外星人敌人,我们仅仅需要创建一个具体的外星人敌人类和具体的外星人敌人工厂:

新增测试代码:

测试结果如下:

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

  1. 代码更清晰:创建对象的逻辑被移到了工厂类中,使代码更加清晰和易于理解。
  2. 符合开闭原则:添加新的敌人类型只需要创建新的敌人类和相应的工厂方法,而不需要修改现有代码,符合开闭原则。
  3. 更易于扩展:可以轻松地添加新的敌人类型,而不会对现有代码产生影响。

结语

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

本系列是《和8年游戏主程一起学习设计模式》,让糟糕的代码在潜移默化中升华,欢迎大家关注分享收藏订阅。

我是"亿元程序员",一位有着8年游戏行业经验的主程。在游戏开发中,希望能给到您帮助, 也希望通过您能帮助到大家。

AD:笔者线上的小游戏《贪吃蛇掌机经典》《填色之旅》《重力迷宫球》大家可以自行点击搜索体验。

实不相瞒,想要个在看!请把该文章分享给你觉得有需要的其他小伙伴。谢谢!

GitHub地址:

https://github.com/lswgit/YiyuanGameProgrammingPatterns.git

http://www.yayakq.cn/news/897745/

相关文章:

  • 常用网站缩略图自定义快速软件开发平台
  • 金山网站建设公司登录网站软件怎么做
  • 专题网站建设意义何在镇江丹阳怎么样
  • 网站建设_制作_设计互联网推广营销隐迅推知名
  • ps网站页面设计教程上海外贸网站优化
  • 网站只能用ip访问网站苏州网站建设系统找哪家
  • 企业网站推广哪家好牟平建设局网站
  • 网站策划建站设计师必备的6个网站
  • 赣州网站建设百家号上海 网站开发 兼职
  • 做优惠券网站需要淘宝哪些接口四个平台建设网站不显示图片
  • jsp 哪些网站希音跨境电商官网入口
  • 网站收录批量查询弄一个app要多少钱
  • 代做毕业设计网站多少钱公司展厅
  • 普洱专业企业网站建设淘宝网站建设论文
  • 免费网站建设ppt东阳建设公司网站
  • 上海企业网站营销电话备份文件wordpress
  • 汉川市城乡建设局网站论述网站建设引言
  • 大家做网站都会去哪找素材字母logo设计生成器
  • 桂阳网站设计公司网站建站收费
  • 北京所有做招聘类网站建站公司网络营销有哪些推广平台
  • 建英文产品网站中国高清vpswindows在线
  • 绥化网站开发公司企业开源建站系统
  • 国外优秀的网页设计作品麻城seo
  • 封面设计网站网站建设情况
  • wordpress点赞出现空白页上海百度搜索优化
  • 网站界面设计案例分析电脑有了外网是不是就可以做网站
  • 衡水做网站推广的公司互联网技术公司
  • 网站建设项目汇报做美团网站多少钱
  • 网站规划与开发技术专业南京外贸网站建设怎么收费
  • 什么是seo网站优化永康做网站