前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Java 基础(七) 以“城堡游戏”为例改良代码(详见源代码)

Java 基础(七) 以“城堡游戏”为例改良代码(详见源代码)

作者头像
Rikka
发布2022-01-19 18:06:40
4510
发布2022-01-19 18:06:40
举报
文章被收录于专栏:rikkarikka

1. 消除代码复制

在原来的代码中,至少两处用到了相同的提示信息,需要将提示信息放在一个函数 showPrompt() 中来减少重复代码。

2. 封装

封装以降低耦合度。在原来的代码中,Game 类大量使用了 Room 类中的成员,比如得到 currentRoom 的出口,正确的做法是在 Room 类中的 getExits() 以 String 返回出口,而非返回 Room 类的对象;Game 类中 goRoom() 函数也不应该直接操作 Room 类的成员,而应让 Room 类自己返回输入所对应的房间。

3. 可拓展性

在原来的代码中, Room 类中含有 4 个表示出口的 Room 类型对象, 这不是好的做法, 因为这样大大降低了代码的可拓展性, 如果要增加 “up” 或者 “down” 方向的出口, 就会变得十分复杂. 更好的方式是用容器来增加代码的灵活性. 改造后, 只需在 createRoom()中写outside().setExit("up", anotherRoom);便可以使 outside 这个房间的 up 方向是 anotherRoom. 增加可扩展性:框架+数据

  • 命令的解析脱离 if-else
  • 定义一个 Handler 来处理命令
  • 用 Hash 表来保存命令和 Handler 之间的关系
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020-12-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 消除代码复制
  • 2. 封装
  • 3. 可拓展性
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档