我想基于机器人场景创建一个程序,包括抽象类,接口类型和数组列表。谁能给我一些关于如何创建这个场景的建议(通过UML图来显示所有链接)。这种情况需要包含一些复杂的方法,但我不确定作为复杂方法做什么或将它们放在场景中的位置。提前谢谢。
答案 0 :(得分:2)
编程世界在很大程度上是从复杂的继承层次结构转移而来的,而不是embraced composition和dependency injection。我建议你将单片服务分解为小(1-5方法)接口。这有一个额外的好处,即单元测试变得轻而易举,因为你可以使用mockito或类似的模拟出依赖项。
例如:
public interface Walkable {
void walk(Robot robot, int paces);
}
public interface Talkable {
void talk(Robot robot, String phrase);
}
public interface Robot {
void walk(int paces);
void talk(String phrase);
}
public class RobotImpl implements Robot {
private final Walkable walkable;
private final Talkable talkable;
public RobotImpl(Walkable w, Talkable t) {
this.walkable = w;
this.talkable = t;
}
public void walk(int paces) {
walkable.walk(this, paces);
}
public void talk(String phrase) {
talkable.talk(this, phrase);
}
}