`

可继承单例的实现

 
阅读更多

可继承单例的实现,在java中只能使用登记式单例模式,但是这样子类就必须公开构造方法。又违背了单例的原则。

nnd。贴个cpp和c#的可继承单例类吧。java。。。。。。。。。。。。。。。template <class T>

class Singleton 
{
public: 
    ~Singleton(void) {};
    static T& GetService(void) {return *Instance;}
protected:
    Singleton<T>(void) {};
    static T* Instance;
};

 

 

public class A<T>
{
	public static T GetInstance()
	{
		return msInstance;
	}
	
	static T msInstance;
}

public class B : A<B>
{
}

 

cpp的是网上找的,c#的是请教别人得来的。反正拿来主义了,要继续折腾java,看看还有其他办法没。

 

用java模仿c#的实现,但java无法定义静态泛型变量,并且静态方法中无法使用类定义的泛型。这确实够恶心的。第一次对java这么绝望。

分享到:
评论

相关推荐

    Qt Quick application单例实现

    以下是一个基本的Qt Quick应用单例实现步骤: 1. **定义单例类**: 创建一个继承自`QObject`的C++类,例如`MySingleton`。 ```cpp #include class MySingleton : public QObject { Q_OBJECT public: explicit ...

    单例模式(Singleton)的6种实现

    饿汉式是一种简单的单例实现方式。在类加载时,单例对象就已经创建。这种实现方式的优点是实现简单,但缺点是不管是否使用,单例对象都会被创建。 2. 懒汉式(Lazy Initialization) 懒汉式单例模式延迟了单例实例...

    JAVA单例模式的几种实现方法

    这种方式支持继承,并且可以方便地扩展多种不同类型的单例实例。 总结来说,饿汉式单例模式简单明了,适用于不需要延迟加载的场景;懒汉式单例模式支持延迟加载,但需注意线程安全性;登记式单例模式则更加灵活,...

    Lua 单例的实现

    Lua中没有类的概念,但是程序猿说要面向对象,然后就有类。程序猿说要继承 和override,然后就有了继承 和 override 。程序猿说要有单例然后有了单例 这里用 Person 和 Student 来作为例子。有少许解释在代码中。

    Qt两种方法实现多线程并安全结束线程及QMutex加锁Qt单例化实现

    本主题将详细探讨如何使用Qt的QThread类来创建和管理线程,并且安全地结束线程,同时结合QMutex进行线程同步,以及如何实现Qt的单例模式。 1. **QThread的使用**: - **创建线程**: 在Qt中,创建线程通常是通过...

    Java单例类

    注册式单例是一种可以继承的单例模式实现方式。其特点是:可以继承注册式单例类,并且可以在子类中实例化对象。代码实现如下: ```java package com.cn.single; import java.util.HashMap; public class ...

    unity中涉及的三种单例模式

    这是最常见的单例实现方式,通常通过私有构造函数和一个静态方法来保证只有一个实例。在Unity中,可以创建一个Singleton基类,然后让需要作为单例的对象继承这个基类。以下是一个简单的C#经典单例实现: ```csharp...

    Delphi实现单例

    由于我们使用了`sealed`关键字,防止了其他类继承这个单例类,进一步保证了单例性。 4. 在类的方法和属性中,你可以添加需要共享的数据和功能。 5. 使用单例时,只需调用`TSingletonClass.GetInstance`即可获取...

    list循环退出Activity,单例模式实现android的退出功能,代替广播,singleton

    通常情况下,开发者可能会使用广播机制来实现这一功能,但使用单例模式来代替广播也可以达到同样的效果,并且能够避免广播可能带来的性能开销。 在给定的文件信息中,介绍了使用单例模式来管理Activity的退出。首先...

    发布订阅者模式实现(内含单例模式、缺省适配器模式)

    总的来说,这个实现结合了多种设计模式,提升了代码的可复用性和灵活性。发布订阅者模式使得系统更易于扩展,单例模式保证了调度中心的唯一性,而缺省适配器模式降低了订阅者的实现成本。通过对这些模式的理解,我们...

    java中的单例模式

    静态内部类单例利用JVM保证了类加载的线程安全性,而枚举单例则是一种既简洁又线程安全的实现方式,也是官方推荐的单例实现方式。 ```java public enum Singleton { INSTANCE; // ... } ``` 在使用单例模式时,...

    设计模式之单例模式Java实现和类设计图

    在软件开发中,设计模式是解决...通过熟练掌握并应用单例模式和装饰模式,开发者可以在保证代码可读性、可维护性的同时,有效地管理和扩展系统功能。在实际项目中,这两种模式经常被结合使用,以实现复杂的功能需求。

    Unity通用泛型单例设计模式(普通型和继承自MonoBehaviour)

    Unity通用泛型单例设计模式(普通型和继承自MonoBehaviour) ...Unity通用泛型单例设计模式(普通型和继承自MonoBehaviour)提供了一种灵活的方式来实现单例模式,并且可以在Unity中应用于各种场景。

    C#单例模式详解 C#单例模式详解C#单例模式详解

    如果你的单例类不需要被继承,可以将其声明为密封类,防止子类化带来的多实例问题。 单例模式的优点包括: - 节省内存:只创建一个实例,减少内存开销。 - 提高效率:全局访问点简化了对象获取的复杂性。 - 控制...

    QT静态单例管理信号和槽

    1. **定义类**:首先,创建一个类,例如`SingletonClass`,它继承自你想要单例化的基类,例如`QObject`。`QObject`类使得我们可以利用其强大的信号和槽机制。 ```cpp class SingletonClass : public QObject { Q_...

    C#创建窗体的单例模式

    本文将深入探讨如何在C# WinForm应用中实现窗体的单例模式。 首先,理解单例模式的基本原理。单例模式的核心在于限制类的实例化过程,通常通过私有构造函数和静态工厂方法来实现。在C#中,我们可以创建一个静态私有...

    单例模式 Singleton Pattern

    5. **枚举**:JDK5之后引入的一种更简单的单例实现方式,天然支持序列化机制,能避免反射和反序列化的攻击。 ```java public enum Singleton { INSTANCE; public void showMessage() { System.out.println(...

    PHP单例模式实例分析【防继承,防克隆操作】

    在单例模式实现过程中,为了防止类被继承,可以直接在类定义前加上final关键字,这样做会使得这个类成为最终类,无法被其他类继承。这通常是为了防止子类修改单例的实现,确保单例行为不会被意外或故意地改变。 ...

    unity 单例父类 基本上涵盖了各种可能的单例

    里边一共包含了三个基本的单例类型,分别为 1非游戏对象单例 2随场景切换而销毁的单例 3不随场景切换而销毁的单例 其中2 3 中有一段可以自动创建单例对象的代码已注释 使用方法 继承对应的父类并在泛型中指明自己 ...

Global site tag (gtag.js) - Google Analytics