天天看点

单例扩展-多例模式(枚举实现)

只有两个实例的实现:

public class Test {

public static void main(String[] args) {

Singleton s1 = Singleton.INSTANCEA;

        s1.setAge(20);

        System.out.println(s1.getAge());

        Singleton s2 = Singleton.INSTANCEA;

        System.out.println(s2.getAge());

        System.out.println(s1 == s2);

        Singleton s3 = Singleton.INSTANCEB;

        s3.setAge(22);

        System.out.println(s3.getAge());

        Singleton s4 = Singleton.INSTANCEB;

        System.out.println(s4.getAge());

        System.out.println(s3 == s4);

   }

 }

enum Singleton

{

    INSTANCEA,INSTANCEB;

    private int age;

    public void setAge(int age) {

        this.age = age;

    }

    public int getAge() {

        return age;

    }

 }

结果:

20

23

true

22

22

true