私はマルチレイヤーソリューションを設計し、マネージャのビジネスロジックを実装するクラスを作成しました。すべてのマネージャは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