您当前的位置:首页 >> 装修攻略

单例Mode:最简单的学习Mode

2023-03-13 12:16:21

正如标题标明,它是所有其他简而言之中但会最有趣的简而言之。 它的类图只有一个类,是的只有一个类。 但是尽管它很有趣,但适用起来非常困难,因为我们无需对未来直觉太多。 许多脚本语言建议不要适用单例方式上。 它缩减了可维护性。 但在某些意味着,它非常适合于。 让我们看看为什么我们无需单例方式上

无需单例方式上

在某些意味着,您只无需该类的一个具体来说。一些例次子是 VideoCall(只能降解一个具体来说)、内核、Printer Spooler 等。

你如何确保一个类只能留有一个变数?全局变数或许是一种解决方案,但您无法控制顾客端只始创一个具体来说。更快的解决方案是将此责任赋予类本身以跟踪其程序中但会。一个类可以拦截具体来说程序中但会立体化劝说,也可以备有但会见它的方式。让我们看看它的困难重重。

执行

要程序中但会立体化一个具体来说,我们无需一个赋值或选项赋值。如果我们始创一个所有者赋值呢?你今天可以程序中但会立体化这个类吗?不。要但会见任何类的所有者方式,要么我们无需它的具体来说,要么我们可以从类本身内部但会见所有者方式。第一个的设计文件对我们的例子无效,所以我们并不需要了第二个。你可以在一个系统方式中但会但会见它吗?是的你可以。所以我们始创了一个一个系统方式,然后我们将初始化我们的赋值。就这样。这就是我们的单例方式上。让我们看一下文档以得到更快的信噪比:

public class Singleton { // It is a static variable to hold our one instance of the class // As we'll use it in static method. Therefore, It must be static private static Singleton uniqueInstance; private Singleton(){} public static Singleton getInstance(){ if (uniqueInstance ==null){ uniqueInstance = new Singleton(); } return uniqueInstance; } }

如您所见,我们将赋值声明为所有者,它将限制任何人反之亦然程序中但会立体化此类或适用 new 关键字。 如果你想要它的具体来说,你无需初始化 getInstance() 方式,它但会来到给你 Singleton 唯一的具体来说。 当我们安全检查 uniqueInstance 是否为自力时。 如果我们第一次劝说一个具体来说,那么 uniqueInstance 将为自力,因此它将始创它的最初程序中但会并来到它。 但是第二次,uniqueIinstance 不但会为自力。 它但会来到并不相同的具体来说。

它加剧顾客端只始创一个 Singleton 种类的具体来说而无需担心。 让我们看看它的类图是多么有趣:

查看类图

这只是一堂课。 这是最有趣的简而言之。 它有一个一个系统变数专责留有它的唯一程序中但会,而 getInstance() 方式只始创一个具体来说。

用途

1. 当顾客只无需一个类的程序中但会并且很容易但会见时适用它。

用处

1. Singleton 类严格控制其具体来说的适用方式、时间和区域内。

2.胜过全局变数。

3. 您可以轻而易举地对其同步进行次子类立体化,并可以在直通时适用您无需的类的程序中但会来的设计软件包。

4. 您可以控制软件包适用的变数数量。

缺点:

1.单例类在多线程系统的意味着但会失败。

2、违犯单一义务原则。

3. 它是一个紧密耦合的编程。

4. Singleton 类的单元测试或许很难写就。

有了这个,你之前了解了单例方式上的概念、构建、即时性。 今天你之前准备就绪在你的文档中但会适用 Singleton 了。

谢谢你经历它。 如果您想学习简而言之,请继续注目下一篇社论。

郑州看白癜风哪家专科医院好
宁波看白癜风去哪个医院
福州治早泄阳痿医院哪家好
郑州看妇科哪里好
沈阳哪个医院看牛皮癣好
相关阅读
友情链接