Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.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 在YuGiOh游戏中,我可以在singleton或factory模式之间使用什么模式?_Java_Design Patterns - Fatal编程技术网

Java 在YuGiOh游戏中,我可以在singleton或factory模式之间使用什么模式?

Java 在YuGiOh游戏中,我可以在singleton或factory模式之间使用什么模式?,java,design-patterns,Java,Design Patterns,我正在尝试开发基于控制台的简单游戏YuGiOh。我已经制作了超级卡,它将继承成三个等级:trapcard、magiccard和monstercard。但是我应该在游戏中添加一些模式,在单件模式和工厂模式之间的最佳选择是什么 我应该把模式放在我的游戏中的什么地方?你的问题太模糊了,任何人都无法帮助你,Singleton和Factory模式有着完全不同的用途,也许你可以在应用程序的某个地方使用它们 在设计的初始阶段,不要担心模式,在自己的头脑中想清楚事情是如何运作的,也许可以画一些图表,考虑一下需要

我正在尝试开发基于控制台的简单游戏YuGiOh。我已经制作了超级卡,它将继承成三个等级:trapcard、magiccard和monstercard。但是我应该在游戏中添加一些模式,在单件模式和工厂模式之间的最佳选择是什么


我应该把模式放在我的游戏中的什么地方?

你的问题太模糊了,任何人都无法帮助你,Singleton和Factory模式有着完全不同的用途,也许你可以在应用程序的某个地方使用它们


在设计的初始阶段,不要担心模式,在自己的头脑中想清楚事情是如何运作的,也许可以画一些图表,考虑一下需要什么类,并生成一个高级OO设计。模式稍后会出现,一般来说,如果您已经完成了上述步骤,那么应该清楚应该使用哪些(如果有的话)模式。

单例模式用于单实例对象。工厂模式用于创建超类或对象的不同实例

Singleton模式适用于游戏本身和对象管理器(图形对象实例或任何渲染对象、声音管理器、游戏管理器、逻辑管理器等)

工厂模式在洗牌组或任何其他对象生成机制时可用。可能是人工智能移动等等

还有许多其他模式可用于事件链接、AI、对话事件等


虽然codebox是正确的,但您至少需要一些图表来正确地详细描述游戏。也许你应该从这个开始。(创建类图和序列图对YuGiOh很有用)

这取决于您想要什么。单个实例在整个程序中都是唯一的,例如,您将能够拥有一个trapcard,该trapcard将由程序中的所有其他对象共享。如果你只是想找到一种方法来创建好卡的实例,你可能更喜欢工厂模式。

如果你问“我的模式放在哪里”和“应该是工厂模式还是单一模式”,你应该重新考虑你的方法。通常,设计和实现模式是为了解决软件开发过程中遇到的常见问题。在这些问题出现之前,你不能毫无目的地使用它们


我不知道什么是YuGiOh,但根据你的描述,如果你真的想使用这些模式(即教育目的),我会使用工厂来构建这些卡对象,使用singleton来实现一些日志机制,但再一次-如上所述,您的问题是模糊的。

如果编码器想要实现设计模式,那么编码器应该知道尽可能多的设计模式。建议采用“头部优先设计模式”。两者之间的选择取决于您所处的场景。两者都有不同的目的。