栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

设计和对象责任的问题

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

设计和对象责任的问题

您在问如何简化。如果我可以建议一些粗体,为什么不使用一个不透明的int作为方向,并使用一个静态类来处理呢?“不透明的int”是指您的代码永远不会直接使用它,而只是将其作为Direction类的参数。

这是一些部分的Java风格的伪代码,以显示我的意思。

// 0 = east, 1 = north, 2 = west, ...public class Direction {  static int [] moveX = [ 1, 0, -1, 0];  static final int NORTH = 1;  // coordinates after moving one step in the given direction  static Pair move(int direction, Pair old) {     return new Pair( old.x + moveX[direction] , old.y + moveY[direction] );  }  static int turnLeft(int direction) {      return (direction+1) % 4;  }  static int turnRight(int direction) {     return (direction+3) % 4;  }}

这种处理方式将具有使用较少分配的优势,因此垃圾收集器将不需要经常运行。另一个优点是,设计保持面向对象的意义,即如果以后您希望一次能够旋转45度,则可以轻松更改方向类别。

为了回答您的其他问题,我认为将Directions沿某个方向更改的任务委托给Direction类是完全可以的。流动站仅在流动站对象将包含一个int字段来存储其面对的方向的意义上负责保持方向。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/574517.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号