所有栏目 | 云社区 美国云服务器[国内云主机商]
你的位置:首页 > 云社区 » 正文

如何用一个简单的比喻,让完全不懂编程的女生瞬间明白Java中的单例模式是什么?以及项目开发中在哪里用?

发布时间:2020-04-15 16:41:44

资讯分类:单例模式  java  何用  编程  账号  注册  临时
如何用一个简单的比喻,让完全不懂编程的女生瞬间明白Java中的单例模式是什么?以及项目开发中在哪里用?

昨天举了个例子,没举好,我也是没考虑清楚,所以被诟病了,今天来重新举一个。

这是个有趣的问题。

先说一个题外话,别让女生去思考1+1=2以外的问题,费时费力还不讨好。

即使她懂了什么是单例,你无理取闹还是无理取闹,该买包还是买包。所以,少年,不要浪费这些脑细胞了。

其实,现实中单例模式的场景很多很多,我们举一个最常见的例子。

玩手机游戏

现在有很多的手机游戏,你去玩的时候是不需要自己主动注册的,他可以为了生成一个临时的账号,只要你不主动的退出,你的手机其实一直都在使用这个账号的。

如果你玩游戏觉得还不错,你可以绑定自己的手机号,这样就会有一个固定的账号了。

本来,我们有很多人都在玩这个游戏,每次都是会使用一个临时的账号来玩。

我们退出游戏以后,假设手机的清理功能会清空我们的缓存,这样我们下次去玩游戏,就需要再注册一个临时账号了。

我们一合记,发现还是有一个固定的账号比较好。

如果,但是我们这么多人,注册那么多个账号没意思,如果我忘了账号,下次我还是要再注册一个。

干脆,我们所有人就注册一个账号,大家就都一起用。

这样,我们就都可以玩游戏,而且有正式账号了。

如果有什么战绩榜单,我们所有人的战绩还能够累积,比较爽。

那实际项目中,如果这种,资源类型是相同的,并且可以共享的资源,没必要每个人使用的时候都去创建一个新的,那就可以使用单例。


最后,别一厢情愿的让女人了解代码,就算她问你,那也不是她真心的。少年,醒醒吧,如果女生为你什么是编程,那可能只是因为你冷落她了,你这个时候就应该给她买个包,能治百病。

如何用一个简单的比喻,让完全不懂编程的女生瞬间明白Java中的单例模式是什么?以及项目开发中在哪里用?

比如几个人住一个屋,屋里有一个扫帚,大家都用这个扫帚来扫地就是单例模式,如果这个扫帚是搬进屋就买好了就是饿汉模式,如果是要扫地时发现没有扫帚再去买的就是懒汉模式。单例模式使项目共用一个对象。

如何用一个简单的比喻,让完全不懂编程的女生瞬间明白Java中的单例模式是什么?以及项目开发中在哪里用?

首先解释下什么是单例模式:在一个java程序中,一个对象的实例在整个应用程序中,始终是同一个。

这里可以举一个简单的例子,如果你用的电脑是windows的,你应该知道一个叫任务管理器的东西:

你可以尝试多次打开任务管理器,是不是发现,始终只能打开一个任务管理器窗口呢,而且里面的内容,是不是始终都是记录着你运行的进程和性能等数据。这就是单例模式的核心,任务管理器在整个操作系统中只有唯一的一个,而且每次打开的是同一个。


下面我们用代码来说明下原理:

public final static Map map = new HashMap();

在上面的代码中,Map和HashMap都是一个类,当执行了new HashMap(),调用了HashMap的构造方法,并在堆内存(且认为这个是电脑内存就好了)中创建了一个实例,然后map这个变量去指向这个实例,在这里,单例模式就是指,在整个程序中,这个map变量,不能再指向另外一个被new的实例。

至于怎么实现单例,请读者自行百度:恶汉式、懒汉式、double-check、静态内部类的方式、枚举的方式实现的单例模式,看看其中double-check、静态内部类的方式、枚举的方式在并发环境下有什么优缺点。

应用场景:

1、可以用单例来实现缓存,一个应用程序维护一个单例的缓存容器,这个容器可以是Map(比如并发容器ConcurrentHashMap),当应用程序需要的时候,直接容器中通过Key值读取。

2、可以用来加载配置文件,整个程序启动,配置一般不会经常改动,所以可以使用单例来维护一个配置对象。

3、数据库连接池等等。。。

只要是在程序可以全局得使用某个类唯一的实例的时候,可以优先考虑,看是否可以使用单例模式来节约系统资源,提供全局访问等。

如何用一个简单的比喻,让完全不懂编程的女生瞬间明白Java中的单例模式是什么?以及项目开发中在哪里用?

类可以认为是对象的模板,一个类只能产生一个对象的模式叫单例模式,不管这个类创建过多少次对象,那个对象还是那个对象。举个不恰当的例子,假如一个女人只能生一个孩子,生完一个后到医院手术节育了,就不能生第二个了,这个女人管理这个孩子,你要找到这个孩子的话,需要通过他的母亲才能找到他。

如何用一个简单的比喻,让完全不懂编程的女生瞬间明白Java中的单例模式是什么?以及项目开发中在哪里用?

单利 就是一个的意思 你new的对象都是好几个 如何new一个就是单例模式

如何用一个简单的比喻,让完全不懂编程的女生瞬间明白Java中的单例模式是什么?以及项目开发中在哪里用?

以前呢国家允许每次去超市或者菜市场买菜,买一次用一个塑料袋,但是后来国家发现 这样的使用发(用一次扔一次,下次再用个新的)造成了大量的资源浪费,回收也麻烦。后来国家出台个规则,禁止用一次性塑料袋,买菜要用可重复利用的塑料袋。

留言与评论(共有 0 条评论)
   
验证码:
Top