星星博客 »  > 

通过枚举实现单例、策略模式

1、单例模式

这种方法在功能上与公有域方法相近,但是它更加简洁,无偿提供了序列化机制,绝对防止多次实例化,即使是在面对复杂序列化或者反射攻击的时候。虽然这种方法还没有广泛采用,但是单元素的枚举类型已经成为实现 Singleton的最佳方法。 —《Effective Java 中文版 第二版》

public enum SystemConfiguration {

    INSTANCE;

    public static SystemConfiguration getInstance() {

        return INSTANCE;

    }

}

 

2、策略模式

public enum PizzaDeliveryStrategy {

    EXPRESS {

        @Override

        public void deliver(Pizza pz) {

            System.out.println("delivered in express mode");

        }

    },

    NORMAL {

        @Override

        public void deliver(Pizza pz) {

            System.out.println("delivered in normal mode");

        }

    };

    public abstract void deliver(Pizza pz);

}

 

相关文章