一个是限定单个,一个是限定多个。
举个例子。
假设一周有七天,周一~周日。如果想随机选出一个日子来,最好用枚举。这样既能保证随机性,又能保证合理性,防止出现星期8这样的狗血例子。
这是枚举。
而太阳系只有一个太阳,当你想对太阳进行操作时,假设你这样写:Sun s=new Sun();然后在另一个地方写Sun s1=new Sun();那么在一个程序(世界)中就有两个实例(而且这两个实例还是平行对等互不干扰的),这显然是有违常理的而且会导致灾难的。所以当在程序中限定必须有且只有一个实例时(例如 日历类cal),可以选用单利模式,防止多次实例化多个实例造成系统混乱。
其实所谓的实例就是多重影分身。而禁止使用影分身的地方,必须使用单例模式。
|