这是我优快云上的第一篇博文,我希望通过学习设计模式并通过进行编码实现来加深对设计模式的理解!我学习的第一个设计模式是单例模式,以下是我使用java实现的程序:
package Singleton;
/**
* Singleton定义一个Instance操作,允许客户访问它的唯一实例
* Instance是一个类操作,可能负责创建它自己的唯一实例
* @author wjm
*
*/
public class Singleton {
privatestatic Singleton sing;
privateSingleton(){
System.out.println("singleton");
}
publicstatic Singleton getInstance(){
if(sing== null){
sing= new Singleton();
}
returnsing;
}
publicstatic Singleton getSing() {
returnsing;
}
publicstatic void setSing(Singleton sing) {
Singleton.sing= sing;
}
}
以下是测试程序:
package Singleton;
/**
* 单例模式:保证一个类仅有一个实例,并提供一个访问它的全局访问点
*
* 适应性:1当类只能有一个实例而且客户可以从一个总所周知的访问点访问他时
* 2当这个唯一实例应该是通过子类化可以扩展的,并且客户应该无需要改代码就能使用一个扩展的实例时
*
*
* Singleton模式主要作用是保证在java应用程序中,一个类class只能出现一个实例存在
* @author wjm
*
*/
public class Test {
publicstatic void main(String[] args) {
Singletons1 = Singleton.getInstance();
Singletons2 = Singleton.getInstance();
System.out.println(s1);
System.out.println(s2);
}
}