派生类应始终为单身

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了派生类应始终为单身相关的知识,希望对你有一定的参考价值。

我试图创建一个基类,在所有派生类之间共享一些功能。所有派生类都应该是单身人士。下面是一个伪示例。

class ExtensionSettings
{
    public string GetConfightml()
    {
        // creat conifig html for all properties
    }

    public void SaveSettings()
    {
        // save stuff
    }
}

class SettingsA : ExtensionSettings
{
    private static SettingsA instance;
    public static SettingsA Instance {get {return instance ?? (instance = new SettingsA());}}

    public string setting1{get;set;}
    public string setting2{get;set;}
}

class SettingsB : ExtensionSettings
{
    private static SettingsB instance;
    public static SettingsB Instance {get {return instance ?? (instance = new SettingsB());}}

    public string setting1{get;set;}
    public string setting2{get;set;}
}


static void Main(string[] args)
{
    System.Console.WriteLine(SettingsA.Instance.setting1);
    System.Console.WriteLine(SettingsB.Instance.setting2);
}

是否可以将实例化部分移动到ExtensionSettings基类?

答案

基类不知道要实例化的其余对象。基本上,当您从基类派生时,派生类中添加的额外逻辑将从基类中隐藏。因此,在基类中进行实例化是不可能的。

以上是关于派生类应始终为单身的主要内容,如果未能解决你的问题,请参考以下文章

210你能告别单身吗

Android SMS Verification API 结果码始终为 0

对话框片段包始终为空

使用导航组件时,片段 savedInstanceState 始终为空

片段内的视图坐标始终为空

C#接口