栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

java设计模式之单例模式

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

java设计模式之单例模式

java中目前有几十种设计思路的模板,其中一种设计模式就是单例模式。

单例模式就是某类中只使用一个对象来完成程序的模式。

若要达成这个,首先则必须要让类无法new出第二个对象。

那么如何让其不能创建第二个对象呢,就是私有化构造方法,以及创建唯一的对象。

但是做到这些,还不够,因为我们还要通过这个对象提供一个对外的访问,这个时候我们就要用静态方法来实现了。

eg.

class Person{

String name;                //对象特有属性(堆区内)

private Person(){        //私有化构造方法,让别人无法通过Person类直接创建对象

}

static Person one=new Person();        //静态这个唯一的对象,(静态区(方法区)内)

public static Person getDanli(){        //静态方法(静态区(方法区)内)

return one;        //返回对象one的内存地址

}

}

public class Study{

public static void main(String[] args){

Person a=Person.getDanli();  //通过静态类方法访问one的内存地址,并赋给a;

a.name="加油";        //a和one是同一个内存地址,a.name==one.name;

Person b=Person.getDanli();        //通过静态类方法访问one的内存地址,并赋给b;

System.out.println(b.name);        //b.name==a.name==one.name;

}

}

输出结果为   加油

学了这个之后,我有个疑问,既然这样,综合之前学到的内容,static使用,直接用Person.name访问不是更方便。单例模式的意义何在呢?

(以下内容来自百度查找)

1.控制资源的使用,通过线程同步来控制资源的并发访问;

2.控制实例产生的数量,达到节约资源的目的。

3.作为通信媒介使用,也就是数据共享,它可以在不建立直接关联的条件下,让多个不相关的两个线程或者进程之间实现通信。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/998934.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号