我想为我们在这里开发的几个应用程序开发一个框架,我试图构建的框架类之一是用于创建数据库。理想情况下,我会有一个方法,我可以通过它以下两种方法: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