A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© Ryan_Println 中级黑马   /  2016-9-6 15:12  /  590 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

单例设计模式的概念? 还有特点及组成

6 个回复

正序浏览
大神,膜拜啊
回复 使用道具 举报
写出一个类,类里面有一个方法能得到 这个类的实力对象
回复 使用道具 举报 1 0
单例模式是设计模式中最简单的形式之一,这一模式的目的是使得类的一个对象成为系统中的唯一实例。
实现方式:
                饿汉式 : 直接创建对象
                                线程安全的
public class Son {
        /在类中提供一个本类对象
        private static Son s = new Son();
        //构造方法私有化
        private Son(){
        }
        //提供一个公共的方法让外界访问,获取到已创建的本类对象
        public static Son getInstance(){
                return s;
        }
}       

                懒汉式 : 当需要用到对象的时候,再创建对象(延迟加载方式)
                                一个线程对象的时候,这种方式线程是安全的
                                多个线程对象的时候,这种方式线程是不安全, 可以同步机制处理
public class Girl {
        //创建本类对象的引用
        private static Girl g = null;
        //构造方法私有
        private Girl(){
        }
        //提供一个公共的方法让外界访问,获取到已创建的本类对象
        //第一次访问该方法,创建对象
        //之后再访问该方法,返回以前创建好的对象
        public static Girl getInstance(){
                //第一次访问该方法,创建对象
                if (g == null) {
                        g = new Girl();
                }
                //之后再访问该方法,返回以前创建好的对象
                return g;
        }
}

回复 使用道具 举报
只能new出一个对象
回复 使用道具 举报
单例设置模式就是一个类不能从外部直接创建对象(因为该类的构造器是私有的),只能通过该类的方法获取一个对象,例如
public class Singleton_1 {
        private static Singleton_1 instance = null;
        private Singleton_1(){};
       
        public static Singleton_1 getInstance(){
                if(instance == null){
                        instance = new Singleton_1();
                }
                return instance;
        }
}
回复 使用道具 举报
怎么都木有人回复啊
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马