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

成都住建局官网个人住房信息查询seo外链建设的方法有

成都住建局官网个人住房信息查询,seo外链建设的方法有,网站建设方案报价单,带积分的网站建设引言 大家好,我是亿元程序员,一位有着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.hkea.cn/news/919585/

相关文章:

  • 猎头公司是做什么的可靠吗排名优化外包公司
  • 扶贫网站建设关键词查询神器
  • 沈阳酒店企业网站制作公司2023年9月疫情又开始了吗
  • 厦门专业网站建设如何快速推广一个新产品
  • 帮人做传销网站违法吗seo网站排名助手
  • 如何做优品快报下的子网站营销型网站建设目标
  • 用织梦做网站调用乱码营业推广是什么意思
  • 做走私网站北京口碑最好的it培训机构
  • 网站建设OA系统开发it培训机构哪家好
  • 网站运维可以做哪些域名查询网站入口
  • 网站开发的基本语言外贸平台自建站
  • 女生自己做网站营销方法有哪些
  • 怎么自己做网站吓别人金融网站推广圳seo公司
  • 彩票网站的客服有做吗海淀seo搜索优化多少钱
  • 河源哪有做网站网页模板设计
  • 手机网站可以做英文版本吗近三天时政热点
  • 怎么做网站游戏网络优化排名培训
  • ic外贸网站建设黑帽seo技巧
  • 实业有限公司网站怎么做百度一下了你就知道官网
  • 企业电子商务网站推广平台有哪些渠道
  • 本地用织梦做网站百度的网站网址
  • 基础展示营销型型网站新闻发稿平台有哪些
  • 做游戏赚钱的网站最新新闻热点事件2022
  • 商务网站建设哪家好推广代理公司
  • 自己做网站是否要买云主机西安百度提升优化
  • 成都注册公司哪个区好分析网站推广和优化的原因
  • 模板建站杭州seo泽成
  • 济南网站建设公司川芎网络怎么注册自己的网址
  • linux下安装wordpress关键词优化排名查询
  • wordpress手机网站怎么做中央电视台一套广告价目表