gpt4 book ai didi

c# - 将单例定义移动到 C# 中的 mixins

转载 作者:太空宇宙 更新时间:2023-11-03 16:07:24 25 4
gpt4 key购买 nike

我必须将大约 10 个类更改为单例,我认为与其复制粘贴代码不如使用 mixins 更有意义,就像这里描述的那样:http://msdn.microsoft.com/en-us/vstudio/bb625996.aspx

但是,我不需要那么多额外的方法,而是对类本身进行更多额外的更改,我在应用这些说明时遇到问题。

我尝试创建一个空接口(interface) ISingleton,然后将单例部分作为扩展添加到新类 public static class Singleton

这是我想使用的单例部分:

    public static SomeClass Instance
{
get { return _instance ?? (_instance = new SomeClass ()); }
}

private static SomeClass _instance;

但是在将它添加为扩展时我遇到了一个问题——如何定义 Instance 属性,以便它可以被许多类重用?第二个问题 - 我仍然需要手动将构造函数更改为私有(private)。

这种方法有意义吗?我以前没有使用过 mixin,也许这不适合它?

最佳答案

您提供的 mixins 链接显示了用于向支持接口(interface)的所有对象添加功能的扩展方法。您仍然需要先创建对象。由于单例模式处理对象的创建,因此应用这些技术基本上还为时过早。

Singleton 不需要那么复杂,你正在阅读 Jon Skeets 的文章,一个简单的:

public sealed MyClass
{
private MyClass(){}
public static MyClass Instance = new MyClass();
}

通常是您所需要的。如果需要,我很乐意重复该代码 10 次。或者可以使用服务定位器或 IoC 容器来管理对象的生命周期。

关于c# - 将单例定义移动到 C# 中的 mixins,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18822672/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com