关于java中static关键字在单态设计模式的应用学习和总结

来源:互联网 发布:淘宝和微商哪个便宜 编辑:程序博客网 时间:2024/05/29 14:33

在java开发中,对于static关键字都不陌生,但是对static的理解却是浅浅而谈。

static关键字修饰的变量是静态变量,修饰的方法是静态方法,它们在类被加载时调用(包括static的静态代码块),而且只执行一次。所以调用静态变量和静态方法不用创建对象就可以直接使用,在类内部直接调用即可,在类外部使用类名.变量名的方式调用。当然了,使用类的实例同样可以调用。


所谓单态设计模式,就是采用一定的方法保证在整个软件系统中,对于某一个类只能存在一个对象实例,并且这个类只提供一个取得其对象实例的方法。


设计思路:既然只需要一个对象实例,那么该类的构造方法就需要private修饰,这样在类的外部就不能够实例化该类的对象了,要使用该类的对象怎么办呢?刚才提了在该类的内部提供一个取得其对象实例的方法(返回一个该类的实例),此方法要在外部被调用因此需要static修饰,又因为静态方法不能调用非静态的变量和方法,因此在该类中创建的那个对象也需要使用static来修饰。这样就保证该类只产生了一个对象。

举例如下:

public class Chinese {public static void main(String args[]){China china1=China.Instance();  //得到一个China的实例China china2=China.Instance();//得到一个China的实例System.out.println(china1==china2);//此时china1和china2引用的是同一个变量,因此两者是相等的,返回true}}class China{static China china=new China();//静态的变量public static China Instance(){//返回一个China实例return china;}}


     

原创粉丝点击