我可以有一個擁有資源成員的類,或者至少它實現了IDisposable
。這裏是一個例子(只是用於示出我的意思):擁有一個擁有整個對象生命週期資源的類成員是一個好主意嗎?
public class Something
{
private HMACSHA1 HmacSha1;
public Something()
{
HmacSha1 = new HMACSHA1();
}
public byte[] DoIt(byte[] bytes)
{
return HmacSha1.ComputeHash(bytes);
}
}
的構件HmacSha1
IDisposable
實現,因此應該在對象的生命週期的結尾處。我知道這一點,這不是我的問題的一部分,故意排除在這個例子中。它也可以是任何其他類型的資源,如數據庫或網絡連接。
我想知道它是否是一個好主意,讓該成員開放(我指的是在開始創建一次,而不是配置)爲對象的整個生命週期?
或者最好是在需要的地方創建和處理它 - 在上面的例子中的方法DoIt()
?
有什麼缺點?
聽起來很合理。 –