【发布时间】:2009-06-10 15:23:39
【问题描述】:
我正在为当前项目开发一个大型结账应用程序。 此结帐有很多情况,具体取决于用户的管理员级别、他们如何结帐以及他们要结帐的项目类型,因此该过程通过一组上下文类从 .aspx 页面中抽象出来。
这些类都是单个类 CheckoutContext 的子类,并且要使用的类的类型通过枚举来注明。
有没有类似于 typedef 的东西我可以用来选择使用哪个子类,或者我应该只是有一个返回相关类的方法,像这样:
CheckoutContext chooseSubclass(CheckoutCase c)
{
CheckoutContext output;
switch (c):
{
case CheckoutCase.SingleItemNew:
output = new SingleItemNew;
break;
case . . .
return output;
}
}
【问题讨论】:
-
您需要多动态?我的意思是,您多久添加一次新的子类,是否需要在不重新编译应用程序的情况下对其进行配置?您是否有多个开发人员创建这些子类?如果您要处理多个此类需求,您可能需要更强大的解决方案。如果没有,请坚持使用开关。
-
这一点的全部要点是结帐过程太复杂,无法逐节处理,我们需要每页大约 15 个方法来处理哪些字段可用.因此,我们将流程分成类。很有可能以后会做更多,所以我想要一个不需要额外努力来添加结帐流程的解决方案。
标签: c# enums subclassing