私はマルチレイヤーソリューションを設計し、ビジネスロジックを実装するための一連のManagerクラスを作成しました。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
、各マネージャークラスの作成時にインスタンス化する必要があります)。
マネージャクラスを静的として定義し、保護されたメンバーをマネージャのメソッドへの呼び出しごとにインスタンス化するための私の選択は何ですか?