我想爲我們在這裏開發的幾個應用程序開發一個框架,我試圖構建的框架類之一是用於創建數據庫。理想情況下,我會有一個方法,我可以通過它以下兩種方法:CreateDatabaseTables()和ResetDatabaseValues();例如,我可能有三個應用程序,我將調用Application1,Application2和Application3;每一個這些應用程序都會有不同的數據庫模式,我會將它們合併到代碼中(例如,CreateDatabaseTables有一堆「創建表」命令)。我想創建一個可以通過每一種被利用,因此會看起來像一個單一的數據庫的方法:傳遞多個方法(委託?)
應用1
BuildLocalDatabase(CreateTablesForApp1(),ResetDatabaseValuesforApp1())
應用2
BuildLocalDatabase(CreateTablesForApp2(),ResetDatabaseValuesforApp2())
Application3
BuildLocalDatabase(CreateTablesForApp3(),ResetDatabaseValuesforApp3())
BuildLocalDatabase方法會執行如下操作:
publid bool BuildLocalDatabase(CreateTablesForApp(),ResetDatabaseValuesforApp())
{
- see if database file exists; if it does, delete it
- create a new database file
- call CreateTablesForApp
- if the tables were created successfully, call ResetDatabaseValuesForApp
}
任何想法,我將如何去做到這一點。在BuildLocalDatabase函數中實際上有一堆驗證和其他的東西,我的目標顯然是最小化每個應用程序中重複代碼的數量......關於如何去做這件事的任何建議。我認爲在C++中,我可以通過CreateTablesForApp和ResetDatabaseValuesForApp方法作爲函數點,但似乎沒有辦法在C#中執行此操作。代理似乎處理得很好,因爲我實際上只限於一種方法(並且多播似乎想要兩次運行這些方法)。
您可能需要考慮格式化問題中的代碼,以便人們可以更輕鬆地閱讀它。 – 2010-07-29 17:24:19