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

苏宁易购网站建设分析网站建设开发公司地址

苏宁易购网站建设分析,网站建设开发公司地址,莱阳seo外包,wordpress能做大么引言 大家好,我是亿元程序员,一位有着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/488098/

相关文章:

  • 自己的网站怎么编辑北京东城区做网站的公司
  • 网站后台上传附件杨振峰网站开发
  • 网站设计与网站建设课程代码网页生成器
  • 汕头网站设计开发移动端芯片综合性能排行榜
  • 乐趣做网站旅游类网站建设的结论
  • wordpress显示访客常州网站优化公司
  • 有没有像一起做网店做男装的网站淮北市建设工程信息网
  • 寻找扬中网站建设网站建设实训存在的问题
  • 曲靖市建设局网站wordpress 注册 邮件
  • 江西中恒建设集团网站南昌网站建设公司好么
  • 有什么做旅游攻略的网站好设计托管网站建设
  • 品牌网站设计vellum wordpress
  • 台州网站排名优化最佳搜索引擎
  • 佳木斯万达建设网站wordpress优惠券采集
  • 设计师常去的素材网站网站后台生成html
  • 网站开发专业培训学校济南网站建设公司 推荐行知科技
  • 网站建设seo优化网站建设在学校中的作用
  • 外贸网站是怎么做的MIUI官方网站开发版
  • gta5买资产网站在建设个人建设什么网站好
  • 网站建设的摘要怎么写电子毕业设计网站建设
  • wordpress 站内链接毕业设计网页制作咖啡网站图片
  • 网站建设招标无锡部队网站建设建议
  • 虚拟电脑可以做网站吗展厅设计行业平台
  • 新媒体 网站建设 管理规范如何赋予网站建设以生命力
  • 常熟网站制作哪家好做网站哪个平台好一点
  • 深圳专业网站建设服务通常做网站要多久
  • 建设银行网站怎么看不见余额网站后台流程
  • 装饰公司网站模版怎么搭建自己的网站后台
  • 网站开发调研wordpress实现付费浏览
  • 个人做企业 网站WordPress如何添加备案