黑马程序员技术交流社区

标题: 编写一个延迟加载的单例设计模式。 [打印本页]

作者: xiong910627    时间: 2014-9-3 21:15
标题: 编写一个延迟加载的单例设计模式。
本帖最后由 xiong910627 于 2014-9-5 12:25 编辑

public class Test8{
   
        static class People{
                private String name;
                private String sex;
                private int age;
                //构造方法私有化,只能子在本类中对此类进行实例对象,
                //在其他的类中不能对类进行实例化,然后通过创建方法返回在本类中实例的对象。这就是单例设计模式。
                private People(String name,String sex,int age)
                {
                        super();
                        this.name=name;
                        this.sex=sex;
                        this.age=age;
                }
               
                public People()
                {
                        
                }
                        public static People p=null;
                        //首先给声明一个对象,,但是实例化,给其一个空值。
            public static People getPeople(){
                    synchronized (People.class){
                            if(p==null){
                                    p=new People();
                                    //在方法中对声明的对象,进行实例化,在判断条件成立的前提下。只要类一加载,
                                    //对象不会实例化,必须调用获得对象的方法才能实例化此对象,这就是延迟加载。
                            }
                    }
                    return p;
            }
            public String toString()
            {  
                    return "姓名:"+name+"      性别: "+sex+"      年龄: "+age;  
            }
        }
        
        public static void main(String[] args)
        {  
            
                People p1=People.getPeople();  
                People p2=People.getPeople();  
                People p3=People.getPeople();  
            
                p1=new People("王五","男",22);
                p2=new People("赵敏","女",20);
                p3=new People("张三","男",21);
            
            
            
                System.out.println(p1);   
                System.out.println(p2);  
                System.out.println(p3);  
   
        }  
}


作者: 新新人类嘿嘿嘿    时间: 2014-9-3 21:22
入学测试题吧,我就写的毕老师视频的例子
作者: iefegend    时间: 2014-9-3 21:57
学习一下
作者: dhgcy    时间: 2014-9-4 21:35
谢谢分享
作者: 2014heima    时间: 2014-9-4 21:38
学习了,
作者: 吴杰栋    时间: 2014-9-4 21:44
在同步的外面再加个if判断,这样的话,效率会更高
作者: 好听就好    时间: 2014-9-4 21:53
看看代码,学习下
作者: 默默丶    时间: 2014-9-5 10:11
单例设计模型你还能新建对象 还能一次新建三个还有你的构造函数怎么还有一个是public共有的
  1. public   void serName(String name){
  2. this.name=name;
  3. }
  4. public  String getName(String name){
  5. return name;
  6. }
复制代码





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2