我設計了一個多層解決方案並創建了一堆管理器類來實現業務邏輯。所有的經理都來自BaseManager
類。爲了更清楚,這裏的UserManager
類:具有靜態類和屬性的依賴注入
public class UserManager : BaseManager
{
public void Add(User user)
{
...
}
public void Update(User user)
{
...
}
public void Delete(User user)
{
...
}
public bool GetAccessPermissions(User user)
{
...
}
}
BaseManager
如下:
public class BaseManager
{
protected IRepository repository = IoCLocator.Resolve<IRepository>();
public BaseManager()
{
...
}
// Some shared methods among manager classes.
}
現在我懷疑我的管理類都應該定義靜態的,因爲他們得到他們的相關實體上,他們想要操作,作爲參數。但正如你所看到的,我有一些共享的私有/受保護的成員,我應該在每次調用時實例化。 (例如repository
應該在每個經理類的創建中實例化)。
我有什麼選擇將管理器類定義爲靜態的,並且每次調用管理器的方法時仍然保護成員實例化?
我想我是不太清楚。我想在這裏實現的是定義管理器('BaseManager'和'UserManager')靜態,並通過使用在每次調用中實例化的IoC來訪問靜態庫變量。 – Kamyar
如果您的存儲庫是靜態的?受保護的用途是什麼? –
我使用了保護,因此資源庫成員對所有子類(比如'UserManager')都是可見的。每個呼叫都不應該定義儲存庫。 – Kamyar