java 。带参数的 Singleton 和 getInstance

标签 java singleton

我有这样的代码:

public class Hero extends Costam {

    private static Hero heroInstance;

    Weapon weapon;
    static Image idleImg = new ImageIcon("idle.png").getImage();
    static Image movingImg = new ImageIcon("moving.png").getImage();
    static Image fallingImg = new ImageIcon("falling.png").getImage();
    static Image jumpingImg = new ImageIcon("jumping.png").getImage();

    private LinkedList<Sprite> sprajty;
    private ArrayList<Segment> plansza;

    static int[] idleArray = new int[]{0, 1, 1, 2, 2, 3}, movingArray = new int[]{0, 1, 2, 3, 4, 5},
            fallingArray = new int[]{0}, jumpingArray = new int[]{0, 1, 2};

    static ArrayList<Image> obrazy = new ArrayList<Image>() {
        {
            add(idleImg);
            add(movingImg);
            add(fallingImg);
            add(jumpingImg);

        }
    };

    static ArrayList<int[]> tablice = new ArrayList<int[]>() {
        {
            add(idleArray);
            add(movingArray);
            add(fallingArray);
            add(jumpingArray);

        }
    };

    private Hero(ArrayList<Segment> plansza, LinkedList<Sprite> sprajty) {
        super(new Sprite(plansza, obrazy, tablice));
        this.plansza = plansza;
        weapon = new BasicWeapon(new ImageIcon("blue-portal.png").getImage());
        this.sprajty = sprajty;

        velocityX = 8;
    }

    //SINGLETON - ten get instance btw
    public Hero getInstance ()
    {
        if (heroInstance == null)
        {
            heroInstance = new Hero(plansza, sprajty);
        }
        return heroInstance;
    }

    public static Hero getInstance (ArrayList<Segment> plansza, LinkedList<Sprite> sprajty)
    {
        if (heroInstance == null) {
            heroInstance = new Hero(plansza,sprajty);
        }
        return heroInstance;
    }

可以看到,有一个带参数的getInstance方法,这在Singleton中是 Not Acceptable 。如何解决呢?谢谢。 我尝试用init方法替换它,但不知道如何继续。

最佳答案

对。它不是单例。这是一个Multiton扩展了单例概念,以将命名实例映射作为键值对进行管理

关于 java 。带参数的 Singleton 和 getInstance,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34700126/

相关文章:

php - PHP 单例类的最佳实践

java - 使用 POST 方法的 Web 服务响应 "Unsupported Media Type"

java - 将两个 HashMap 组合成第三个

java - 使用 Hibernate 添加数据库后进行单元测试

java - Singleton Bean UDP 监听器

java - 通过枚举方式的单例是惰性初始化的吗?

java - Thread.currentThread() 在多核/多处理器系统上的语义?

java - 为另一个字符串的子字符串创建一个新的字符串是多余的吗?

java - Android应用程序类充当单例?

c# - 在泛型类中需要一个真正的静态字段,否则如何保护它的可见性?