我可以有一个拥有资源成员的类,或者至少它实现了IDisposable
。这里是一个例子(只是用于示出我的意思):拥有一个拥有整个对象生命周期资源的类成员是一个好主意吗?
public class Something
{
private HMACSHA1 HmacSha1;
public Something()
{
HmacSha1 = new HMACSHA1();
}
public byte[] DoIt(byte[] bytes)
{
return HmacSha1.ComputeHash(bytes);
}
}
的构件HmacSha1
IDisposable
实现,因此应该在对象的生命周期的结尾处。我知道这一点,这不是我的问题的一部分,故意排除在这个例子中。它也可以是任何其他类型的资源,如数据库或网络连接。
我想知道它是否是一个好主意,让该成员开放(我指的是在开始创建一次,而不是配置)为对象的整个生命周期?
或者最好是在需要的地方创建和处理它 - 在上面的例子中的方法DoIt()
?
有什么缺点?
听起来很合理。 –