我设计了一个多层解决方案并创建了一堆管理器类来实现业务逻辑。所有的经理都来自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