Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/377.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 从OOP设计的角度,通过对象传递参数的最有效实现?_Java_Android_Oop_Parameter Passing - Fatal编程技术网

Java 从OOP设计的角度,通过对象传递参数的最有效实现?

Java 从OOP设计的角度,通过对象传递参数的最有效实现?,java,android,oop,parameter-passing,Java,Android,Oop,Parameter Passing,我想创建一个方法来创建任意数量的播放器对象(存储在PlayLogic中的ArrayList中)。现在我决定只创建两个玩家对象。我通过调用createPlayers(2),在PlayActivity中对其进行硬编码,因此它的实现。。是否最好将参数传递给Play,然后将参数传递给PlayLogic,PlayLogic创建2个玩家对象。。或者我直接从PlayActivity调用PlayLogic会更好吗? 我希望我的设计反映出有效的设计(因此我希望尽可能少的关系,不确定这是否是正确的UML术语。)在过

我想创建一个方法来创建任意数量的播放器对象(存储在PlayLogic中的ArrayList中)。现在我决定只创建两个玩家对象。我通过调用
createPlayers(2)
,在PlayActivity中对其进行硬编码,因此它的实现。。是否最好将参数传递给Play,然后将参数传递给PlayLogic,PlayLogic创建2个玩家对象。。或者我直接从PlayActivity调用PlayLogic会更好吗?
我希望我的设计反映出有效的设计(因此我希望尽可能少的关系,不确定这是否是正确的UML术语。)

在过程中增加一个额外的层会产生少量的开销。这种开销不足以使设计混乱(不恰当的抽象)。产生额外开销的原因是,您正在以多层方法向其他人询问信息。例如:

2人之间的沟通速度比3人使用相同信息的沟通速度快,请遵循以下示例:

A -> B (what is 2+2)  
B-> A (4) 

VICE

A->B (what is 2+2)  
B->C (what is 2+2)  
C->B (4)  
B->A(4)

进一步讲性能,但选择使用
ArrayList
,可能是因为此数据结构不正确,我们需要更多关于底层对象模型的信息,以及在执行过程中最常执行的操作。

担心1-1-额外方法调用的效率?说真的吗?@ignis虽然可能是线性规模,但12万亿次额外调用就是12万亿次额外调用。@ignis从设计角度看,程序的效率/性能(时钟周期方面)不如效率,我想让这个程序及其源代码易于忽略和维护,同时保持同样的灵活性和“复杂性”,而不增加任何不必要的开销(当然我不会对其进行超级优化,但希望尽可能使其易于理解和进一步开发)。“效率”这个词可能用错了…@Woot4Moo我认为他不需要多次调用玩家工厂方法…@ignis是的,我可能只需要在启动游戏时调用一次(如果我退出游戏并重新启动它,或者更改玩家数量,我会再次调用它)但它不会经常被调用。不管怎样,我想确保设计是正确的。谢谢你的回答。所以我想我将直接从PlayActivity调用PlayLogic。关于ArrayList的使用,是否最好按以下方式使用:
List playerList=new ArrayList
?我选择使用ArrayList是因为我想使用任意数量的播放器,但我从2个播放器开始(以确保它能在几乎没有错误的情况下工作),我是否应该简单地使用一个播放器[](播放器数组)?这样ArrayList将在接近满时调整大小。一个ArrayList恰好由一个数组支持,这个数组将把你放在同一个位置上。好吧,所以在这种情况下我是否使用ArrayList和array真的没有关系吗?没错,我得到的是可能List不是正确的实现。您可能想考虑MAP或SET或ETER ETC,此讨论是非主题的,但我将回答您的评论。我更喜欢使用List或ArrayList,因为我更喜欢使用这些结构,我猜它们对性能或代码可读性没有负面影响,所以我会坚持使用它们。