- public class TestStream {
- private String name;
- public String getName() {
- return name;
- }
- public void setName(String name) {
- this.name = name;
- }
- //该类只能有一个实例
- private TestStream(){} //私有无参构造方法
- //该类必须自行创建
- //有2种方式
- /*private static final TestStream ts=new TestStream();*/
- private static TestStream ts1=null;
- //这个类必须自动向整个系统提供这个实例对象
- public static TestStream getTest(){
- if(ts1==null){
- ts1=new TestStream();
- }
- return ts1;
- }
- public void getInfo(){
- System.out.println("output message "+name);
- }
- }
复制代码- public class TestMain {
- public static void main(String [] args){
- TestStream s=TestStream.getTest();
- s.setName("张孝祥");
- System.out.println(s.getName());
- TestStream s1=TestStream.getTest();
- s1.setName("张孝祥");
- System.out.println(s1.getName());
- s.getInfo();
- s1.getInfo();
- if(s==s1){
- System.out.println("创建的是同一个实例");
- }else if(s!=s1){
- System.out.println("创建的不是同一个实例");
- }else{
- System.out.println("application error");
- }
- }
- }
复制代码
运行结果:
张孝祥
张孝祥
output message 张孝祥
output message 张孝祥
创建的是同一个实例 结论:由结果可以得知单例模式为一个面向对象的应用程序提供了对象惟一的访问点,不管它实现何种功能,整个应用程序都会同享一个实例对象。
参考:http://www.cnblogs.com/whgw/archive/2011/10/05/2199535.html
|