【发布时间】:2009-08-11 14:59:24
【问题描述】:
这是伪示例中的设计问题:
它是 ASP.NET 用户控件 (UC),它使用“Food”对象作为数据源,并且该对象具有属性 FoodType - “Veg” || “非蔬菜”。
用户控件根据 FoodType 属性更改 UI 显示。在用户控件的代码隐藏类中,某些方法具有相同的 if/then/else 条件:if(Food.FoodType == "Veg")... else ...
在这里,我想使用类似状态的模式,这样用户控件的代码隐藏类将包含 两个内部/嵌套类,即“VegFood”类和“非素食”课程。现在,假设 NonvegFood 类将包含它自己的逻辑实现。
但是只有一个接口,两个实例类(嵌套)只用于这个用户控件,可能是过度设计。除此之外,UC 没有驱动方法,我可以在一个 if 块中调用相关方法,例如“DataBound”和“ItemCreated”。
仍然可以在 UC 类中使用类似 State 的模式吗?可能是 UC 内部的两个实例内部类,如果我可以将调用委托给这些内部类之一?
class UC : UserControl
{
class VegFood
{
string DisplayName
{
get
{
return "Rice";
}
}
}
class NonvegFood
{
string DisplayName
{
get
{
return "Chicken";
}
}
}
protected string DisplayName
{
get
{
return Instance.DisplayName;
}
}
/*********** MAGIC Property ****************/
private ? Instance
{
get
{
return ?;
}
}
}
【问题讨论】:
标签: c# .net asp.net design-patterns oop