【发布时间】:2009-12-04 05:31:43
【问题描述】:
我需要一些漂亮的方法来加载多态对象
我有基类和几个基类不知道的派生类。唯一的事情 基类知道是类型枚举,它定义了它是哪个实际类。
class Order
{
OrderType Type;
bool Load(string filename)
{
// load Type
}
}
class LimitOrder : Order
{
// some data
bool Load(string filename)
{
// load some data
}
}
我需要为基类 Order 编写一个 Load 方法,它可以正确地创建相应的派生类。 我正在寻找一个好的模式。
【问题讨论】:
-
看起来您正在创建自定义序列化机制。内置的序列化器,如 DataContractSerializer,将能够处理这种情况。你真的需要完全从头开始吗?
-
其实我从数据库加载加载需要一个数据表行。因此,我坚持使用 DB 的存储过程。 [Serializable] [GeneratedCode("System.Data.Design.TypedDataSetGenerator", "2.0.0.0")] [XmlSchemaProvider("GetTypedTableSchema")] public class Order_ViewDataTable : DataTable, IRecordSource, IEnumerable { } public class Order_ViewRow : DataRow { int Type ; }
标签: c# .net design-patterns architecture load