单例对象和基类对象之间的区别是啥[重复]

Posted

技术标签:

【中文标题】单例对象和基类对象之间的区别是啥[重复]【英文标题】:what is the diff between singleton object and base class object [duplicate]单例对象和基类对象之间的区别是什么[重复] 【发布时间】:2017-04-30 17:42:35 【问题描述】:

我正在开发我的应用程序,我在单例类之间感到困惑 我的基类中的 object 和 object 都提供了单个 实例反复使用。实际上有什么区别和 单例的优势? 以及哪种方法最好。

【问题讨论】:

【参考方案1】:

Singleton 是一种组织代码的方式(也称为设计模式),使得 Singleton 类在应用程序中可以有一个且只有一个实例。这可以通过不同的方式实现:What is an efficient way to implement a singleton pattern in Java?。

【讨论】:

@Alexander Dascalu 是的,我明白,我可以通过使用整个应用程序在基类中创建一个对象来实现相同的目标,它还提供了我相同的一个对象.. 请详细说明并制作我清楚。 就像说过的那样,Singleton 模式只是一种设计模式。当然,您可以通过不同的方式实现相同的行为。但是在您所说的内容中,您可以创建同一类的其他实例。如果另一位开发人员阅读了您的代码,那么您是否打算只拥有一个实例并不是很清楚。使用单例模式,您可以清楚地表达自己的意图。【参考方案2】:

单例设计范式适用于任何遵循 OOP 的编程语言。它的主要用途是当拥有一个单例实例时,您可以节省内存以创建多个对象。但是单例对象应该只为它的客户提供一组功能。

最好的例子是在使用 GUI 时,用户不希望多个窗口来编辑一组表单详细信息。在这种情况下,单例可以派上用场。因此,无论用户启动多少次 UI,每次都会返回相同的实例。

【讨论】:

如果我在基类中创建一个对象并再次使用它会怎样,也是节省内存..请让我清楚。 你需要了解的是它是否是单例的,如果它是由超类提供的,你需要决定你想要的功能然后创建它的单例..但是如果你做它的派生类单例你已经有一个它的父实例,但这不是单例(父)。【参考方案3】:

单例对象只有一个实例,所以你可以使用全局属性。 基础对象可以创建许多实例,每个实例都有它的内存地址,因此每个实例的属性都不同。 我们不能说哪个更好,他们在不同的条件下使用。

【讨论】:

以上是关于单例对象和基类对象之间的区别是啥[重复]的主要内容,如果未能解决你的问题,请参考以下文章

C++入门派生类和基类的构造/析构函数关系

面向对象的三大特性之继承

java 类中静态变量 和 单例模式下对象中的成员变量 有啥区别?使用场景是啥?

虚函数和基类中的this指针的问题!

list、set、map 之间的区别是啥?

生成一个派生类对象时,调用基类和派生类构造函数按啥次序