gpt4 book ai didi

.net - 这种 .Net 模式有什么好处

转载 作者:行者123 更新时间:2023-12-04 20:21:51 24 4
gpt4 key购买 nike

我正在寻找一种能够同时提供同一类的线程安全和不安全版本的模式。这其中的技术方面非常明显。我想是希望找到命名/访问约定等...

所以我在“Systems.Collections”命名空间中到处都能找到这种模式:

public class WhatEv
{
private class SyncWhatEv : WhatEv
{
// overrides IsSyncronized = true
// overrides whatever else to make it thread safe
}

public virtual bool IsSynchronized
{
get { return false; }
}

public static WhatEv Synchronized(WhatEv whatEv)
{
return new SyncWhatEv(whatEv);
}
}

有许多类可以实现这一点:HashTable、Queue、ArrayList、Stack 等……我理解继承。但是为什么要让它成为一个私有(private)的、嵌套的类并让用户跳过一个圈子来获得它呢?这样做有什么好处吗?

最佳答案

在大多数情况下,不需要对象的线程安全版本(即 Hashtable、Queue)。因此,添加默认情况下使其成为线程安全所需的开销是没有意义的。使用 Synchronized 方法,允许需要线程安全的用户获得线程安全版本。

除了线程安全之外,对象的同步版本不添加任何其他功能。他们不会暴露任何新成员,知道他们的底层类型也没有真正的帮助。因此它们被设为私有(private),并且简单地“看起来”像它们的公共(public)/基类。

关于.net - 这种 .Net 模式有什么好处,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5677977/

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