黑马程序员------Java中单例模式的见解及其应用

来源:互联网 发布:小学生画图软件 编辑:程序博客网 时间:2024/06/08 13:40

/**
*设计模式
*解决问题的一种行之有效的思想
*单例设计模式 保证了一个类在内存中只有一个对象
*单例模式是一种常用的软件设计模式。
*在它的核心结构中只包含一个被称为单例类的特殊类。
*通过单例模式可以保证系统中一个类只有一个实例而且该实例易于外界访问
*从而方便对实例个数的控制并节约系统资源。
*如果希望在系统中某个类的对象只能存在一个,单例模式是最好的解决方案。
*/

怎么做才能保证这个对象是唯一的呢?

1,其他程序随时用new创建该类对象,无法控制个数。
结论:不让其他程序创建该类的对象。因为不可以控制。

2,不让其他程序创建,该类在本类中自己创建一个对象。

3,该类将创建的对象对外提供,让其他程序获取并使用。 


单例模式创建的步骤:
1,怎么实现不让其他程序该类对象呢?
将该类中的构造函数私有化。
2,在本类中创建一个本类对象。

3,定义一个方法,返回值类型是本类类型。让其他程序通过该方法就可以获取到该类对象。

两种单例模式:

第一种是:懒汉式 单例的延迟加载方式 


public class Singleton  {private static Singleton instance;// 将成员变量私有化静态化,将其共享在静态区中并禁止外界访问private Singleton()// 构造函数私有化{}public static Singleton getInstance() // 提供公开的得到对象的方法。{if(instance==null){instance = new Singleton();}return instance;}}


第二种:饿汉式

public class Singleton  {private static Singleton instance;// 将成员变量私有化静态化,将其共享在静态区中并禁止外界访问private Singleton()// 构造函数私有化{}public static Singleton getInstance() // 提供公开的得到对象的方法。{if(instance==null){instance = new Singleton();}return instance;}}
懒汉式的弊端:
懒汉式存在延迟加载问题,所以在多线程的时候,会出现安全问题!因此,在开发的时候主要是用饿汉式!
单例的利用,比如超人的唯一性的实现

class superMan{private String name;private int age;public void setAge(int age){this.age=age;}public int getAge(){return age;}public String getName(){return name;}private superMan(String name){this.name=name;}private static superMan instance;public static superMan getInstance(){if(instance==null){instance = new superMan("超人");}return instance;}}public class  SingletonTest2{public static void main(String[] args) {superMan sm = superMan.getInstance();sm.setAge(18);System.out.println(sm.getName()+"------->"+sm.getAge());}}
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 摩托车驾驶证过期一年怎么办 驾驶证过期一年半怎么办 驾照过期了几天怎么办 驾照过期超过一年怎么办 考试驾照过期了怎么办 驾校考试过期了怎么办 驾驶证明过期了怎么办 驾驶证年过期了怎么办 驾照过期六个月怎么办 移动预约号码取消怎么办 身份证换地址驾驶证怎么办 刚来成都怎么办居住证 我在外地怎么办身份证 身份证丢在外地怎么办 换领新身份证时旧证丢了怎么办 二代身份证重号怎么办 北京行驶证到期怎么办 北京驾驶证即将过期怎么办 去澳门没有网络怎么办 三个周期未年检怎么办 深圳驾照丢了怎么办 武汉驾照年审过期怎么办 武汉驾照过期了怎么办 科二过不了怎么办 南京身份证到期换新怎么办 过期身份证丢了怎么办 南京驾照过期了怎么办 换驾照身体证明怎么办 学车办理暂住证怎么办 a牌驾照扣分怎么办 b牌驾照扣分怎么办 b驾照扣分了怎么办 考驾照要暂住证怎么办 换驾驶证有色盲怎么办 外籍人员办理就业证怎么办 驾驶证该审过期怎么办 小车证扣满12分怎么办 b证扣满12分怎么办 车过户后保险怎么办 换新轮胎旧轮胎怎么办 驾照一审超一年怎么办