【发布时间】:2011-11-16 21:24:19
【问题描述】:
我设计了一个多层解决方案并创建了一堆 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 应该在每个管理器类的创建时实例化)。
我有哪些选择来将管理器类定义为静态并且在每次调用管理器的方法时仍然实例化受保护的成员?
【问题讨论】:
标签: design-patterns dependency-injection static static-methods static-classes