我有一个数据库表,其中包含一个ID
列和一个Name
列。我的任务是设计一个接受其中一个ID作为参数Main()
的程序。什么是设计这个类层次结构的最佳方法?
粗体是编辑2
我需要使用,必须在数据库中存在该ID,以对应于一些代码运行。表中的每一行都对应着稍微不同的代码,但是它们中的很多代码都是共享的。我需要一个能够尽量减少代码重复的设计。
到目前为止,我所开发的抽象基类有一个抽象的Int32
字段ID
来执行在数据库中具有其相应ID的派生类。通过这种方式,我可以反思派生类来找到ID与Main()
参数匹配的实例并实例化该类。然后,我只需调用Main()
中的虚拟方法,该方法运行已定义的派生代码最多。
public abstract class Base {
public abstract Int32 Id { get; }
public void Foo() {
// Do something
}
}
public class Derived {
public override Int32 Id { get { return 42; } }
public void Foo() {
// Do something more specific
}
}
有没有人有任何更好的想法如何实现我想要的?我喜欢将ID保留在类定义中的想法,但如果它有意义,我愿意改变它。
谢谢!
编辑:
一件事,我不喜欢,这是我必须反映在每个派生类型和实例化类型检查ID。有没有人有更好的想法如何做到这一点?
这是功课? – Xint0
不,它适用于新的自动化引擎。 –
如果你从数据库的id中查找名字,你会如何处理这个名字。这听起来像你仰望,并通过ID键入代码...为什么要查找名称? – bryanmac