Tag: 软件设计

平衡设计原则:unit testing

我正在写一个Bananagrams的模拟。 目前,我有一个GameMaster类,可以维护常见的碎片集合。 deal(Player)方法向该玩家交易一定数量的棋子。 我想为此编写unit testing。 但是,此时,我没有getter,因此无法检查对象的状态。 为什么不添加吸气剂? 我不想仅为测试添加代码到公共接口。 目前,没有其他理由公开这些function。 我该怎么办? 无论如何添加getter,混乱公共API(或希望将来需要它们)? 放弃unit testing? (听起来不错。) 或者,这是否表明我的公共界面存在缺陷?

代码设计:性能与可维护性

语境化 我正在测试上下文中使用soot框架实现字节码指示器,我想知道哪个设计更好。 我正在为我正在检测的类中的每个方法构建TraceMethod对象,并且我想在多个类上运行此指令器。 哪个选项提供更高的性能(时空)? 选项1 :(地图) public class TraceMethod { boolean[] decisionNodeList; boolean[] targetList; Map<Integer,List> dependenciesMap; Map<Integer,List> decisionNodeBranchDistance; } 选项2 :(对象) public class TraceMethod { ArrayList targets = new ArrayList(); ArrayList decisionNodes = new ArrayList(); } public class DecisionNode { int id; Double branchDistance; boolean reached; } public class Target { int id; boolean reached; […]

请问java RMI的意义吗?

为什么人们使用RMI,或者什么时候应该使用RMI? 我在oracle的网站上阅读了关于RMI的那些教程。但它没有提供足够的实际例子。 据我了解,软件的模块应尽可能“无关且分离”。 RMI似乎是一个与我高度耦合的例子。 为什么这不是一个糟糕的编码习惯? 我认为客户端应该只发出指令,而对象的所有实际操作都是由服务器完成的。 (我目前正在攻读计算机科学学士学位并且非常缺乏经验,所以如果我理解这些概念错误,请纠正我。) 提前致谢!