【发布时间】:2011-08-31 20:45:30
【问题描述】:
我正在玩弄设计模式,事情进展顺利。我不确定的一件事是否值得在当前只有一个对象时抽象出对象创建?
例如,我正在处理的一个项目包含两种不同的用户类型,它们之间没有任何关系。他们是 IStudent 和 IStaff。对于有问题的应用程序,永远不会有任何其他类型的用户(员工角色处理所有非学生与系统的交互)。
在我的控制器中,我可以简单地:
IStudent student = new Student();
或者我是这样的:
public static class UserFactory
{
public static T Create<T>() where T : class
{
if(typeof(T) == typeof(IStudent))
return new Student() as T;
if (typeof(T) == typeof(IStaff))
return new Staff() as T;
throw new Exception("The requested user type is not valid.");
}
}
然后:
IStudent student = UserFactory.Create<IStudent>();
这是矫枉过正吗?我正在尝试在这些情况下制定最佳实践。
【问题讨论】:
-
到目前为止,答案似乎相当一致!我想我正在考虑对接口进行编程,因此从代码中删除具体类的 all 引用。我不知道应该走多远。
-
当然由你决定,但我仍然说你在为自己创造不必要的工作。等到对接口进行编码是实际问题的最简单解决方案,而不是“良好的编程风格”。
标签: c# design-patterns factory