gpt4 book ai didi

java - 设计咨询 : Choosing between Singleton, 工厂等

转载 作者:行者123 更新时间:2023-11-29 05:49:15 25 4
gpt4 key购买 nike

我已经阅读了First Java: Design Patterns这本书并且是一个新手。

我正在制作自己的游戏引擎只是为了练习,我正在使用单例模式(我知道这对你们大多数人来说都是一种罪恶)来创建独特的类,例如:InputManager、ScreenManager、GameManager 等。我真的找到了有用,但我不想逆流而行。

使用工厂方法创建此类(可能将它们创建为内部类)然后将这些对象传递给任何需要它们的类是否更明智?

这也是不好的做法吗?

我只想确保这些唯一类只有一个实例,并且只有一种访问它们的方法。

也许是这样的:

public final class Factory(){
private static final InputListener inputlst = new InputListener();
private static final Screen window = new Screen();
private static final GameManager gameManager = new GameManager();
public Factory(){
}
public static InputListener getInputListener(){
return inputlst;
}
public static Screen getWindow(){
return window;
}
private static class InputListener implements KeyListener, MouseListener, MouseMotionListener, MouseWheelListener{
}
private static class Screen extends JFrame{
}
private static class GameManager{
}

最佳答案

坦率地说,模式的存在是有原因的。原因很简单。您希望将来的代码有什么变化。没有什么比使用模式的好习惯更好的了。您使用预期更改的位置,基于您预期更改的位置,您需要将更改的部分从保持不变的部分中取出并分离。当您执行此模式时,可以帮助您理解。

没有 SINGLETON 不是邪恶的。它的用法是邪恶的。 Singleton 是一种很棒的模式,用于解决 OOP 和 OOAD 的一个非常独特的问题。

Factory 不能代替 SINGLETON。两者都有非常独特的主张。谁知道呢,如果您花时间仔细了解您的需求(以及 future 的需求),您可能会意识到您需要将两者结合使用。您可能只需要一个工厂,并且可能需要使该工厂成为单例。

了解变化、 future 的变化,并将变化与保持不变的部分分开

关于java - 设计咨询 : Choosing between Singleton, 工厂等,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14620018/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com