[英]Singleton's stateless instance method thread safety (C#)
使Converter成为单例线程安全吗?
public interface IConverter<TFoo, TBar>
where TFoo : class, new()
where TBar : class, new()
{
TFoo ToFoo(TBar q);
TBar ToBar(TFoo q);
}
public class Converter : IConverter<Foo, Bar>
{
public Foo ToFoo(Bar b) {return new Foo(b);}
public Bar ToBar(Foo f) {return new Bar(f);}
}
是的,那绝对很好。 没有状态,因此没有线程安全问题-也没有理由拥有多个实例。 这是一个很自然的单身人士。
当然,可以使用该接口很好,以提高灵活性和可测试性-但是,当您知道要使用该特定实现时,可以使用单例实例。
是的,实现不执行任何依赖状态的操作。
是的,由于该类没有数据成员,因此可以将其设为单例。
由于类太小,您可以仅创建它的静态实例:
public class Converter : IConverter<Foo, Bar> {
private static _instance = new Converter();
public static Instance { get { return _instance; } }
public Foo ToFoo(Bar b) {return new Foo(b);}
public Bar ToBar(Foo f) {return new Bar(f);}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.