到介绍的大概有23种设计模式之多。象工厂代码如下
nbsp;对于JAVA中的设计模式,看//下面是一个单例模式的类
public class MySingleton
{
到介绍的大概有23种设计模式之多。象工厂
privatestatic final MySingleton INSTANCE= new MySingleton();
privateMySingleton()cade)模式,观察者Observer模
{
}
publicstatic 到介绍的大概有23种设计模式之多。象工厂final MySingleton getInstance(){
return INSTANCE;
}&
}
//下面一个不是单例模式的类cade)模式,观察者Observer模
public class NoSingleton
{
public NoSingleton()模式,工厂方法模式,单例模式,外观(Fa
{} private int id;
private String name;模式,工厂方法模式,单例模式,外观(Fa
public int getId() {
return id;
}cade)模式,观察者Observer模
public void setId(int id) {
this.id = id;
}cade)模式,观察者Observer模
public String getName() {
return name;
}到介绍的大概有23种设计模式之多。象工厂
public void setName(String name) {
this.name = name;
}
nbsp;对于JAVA中的设计模式,看
......
}
到介绍的大概有23种设计模式之多。象工厂
测试类
到介绍的大概有23种设计模式之多。象工厂
public class TestSingleton
{
nbsp;对于JAVA中的设计模式,看//Date200810301627
//authtor 网络时空
cade)模式,观察者Observer模
public static void main(String[] args)
{
模式,工厂方法模式,单例模式,外观(FaSystem.out.println("========================================"); System.out.println("下面是使用单例模式,来调用类的实例");
System.out.println("========================================"); nbsp;对于JAVA中的设计模式,看
for(inti=0;i<6;i++)
{
intm=i+1;到介绍的大概有23种设计模式之多。象工厂
System.out.println("第 "+m+" 次"+"得到的对象值为"+MySingleton.getInstance());
}
cade)模式,观察者Observer模System.out.println("========================================"); System.out.println("下面是不使用单例模式,来调用类的实例");
System.out.println("========================================"); nbsp;对于JAVA中的设计模式,看
for(inti=0;i<6;i++)
{
int n=i+1;模式,工厂方法模式,单例模式,外观(Fa
NoSingleton noSingletion=new NoSingleton();
System.out.println("第 "+n+" 次"+"得到的对象值为"+noSingletion);
}到介绍的大概有23种设计模式之多。象工厂
}
}
nbsp;对于JAVA中的设计模式,看
测试结果:
nbsp;对于JAVA中的设计模式,看
根据结果,阿堂总结如下
到介绍的大概有23种设计模式之多。象工厂1.通过单例模式设计的类MySingleton,定义了一个private的构造方法,一个staticfinal类型的常量INSTANCE,其值就是返回一个MySingleton的实例,然后再定义一个getInstance()的静态方法来返回一个INSTANCE,而这个值就是一个不变的实例或值,也就是第一次newMySingleton()产生的对象,所以测试类中,循环6次中,我们打印得到的始终是同一个对象,这就充分验正了,单例模式,只new了一次(实例化了一次),减少了在堆中开辟内存空间的开销
nbsp;对于JAVA中的设计模式,看
&2.没有用单例模式的类,我们在测试类中,循环6次中,我们打印得到的始终是不同对象,这就说,我们在堆内存中new了六次,产生了6个对象,很显示,这是需要占用内存资源,影响运行效率的
nbsp;对于JAVA中的设计模式,看3.对于上单例模式的类中,在测试中,阿堂去掉了final终态类型的限制,循环6次中,我们打印得到的始终是同一个对象,这里说明了final在此处可有可无,那为什么还要加上final呢?
nbsp;对于JAVA中的设计模式,看这里使用final是为了更安全,保证你这个类的其他方法、其他代码不能对