我將建設將涉及到「應用程序」的不同狀態之間切換了大量的軟件。某些任務可以完成取決於應用程序所處的狀態。我想使用枚舉的狀態枚舉VS查找表VS枚舉反射VS State模式
public class Application
{
public int Id {get;set;}
public Status {get;set;}
}
public enum Status
{
[Description("New")]New = 1, [Description("Closed")]Closed = 2
}
但轉念一想,也許這是很好用的查找表在數據庫中的地位不會得到更新/重新排序往往
table status (id int pk, desc string, sort_order int)
table application (id int pk, status_id int fk)
在我case我需要做的事情,如
if (application.Status == Status.New)
{ //do something }
else if (application.Status == Status.Closed)
{ //do other things }
我認爲上面的情況是更容易做與枚舉。但是,當涉及到更新狀態排序順序或描述時,這將非常困難。
我應該用反射基於從查找表值來動態創建枚舉?或者我應該使用狀態模式?我看到與枚舉重新感謝問題是性能影響。狀態模式會產生大量的冗餘代碼。
您認爲如何?提前致謝!
您是如何從數據庫處理檢索和轉換爲對象如果我在答案3中提到,否則沒有其他陳述? – Jeff 2009-03-04 09:58:15