我有一個數據庫表,其中包含一個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