我正在研究数据库升级应用程序。升级程序更新数据库的模式(通过执行SQL语句添加新列,重命名列,添加新表,新视图到现有数据库)。当用户想要从版本1.0升级到2.0时,将从对象工厂获取“升级”对象,并调用每个“升级器”的“执行”方法。应用程序的GUI有一个进度条,每次升级对象执行SQL语句时,进度条都会增加。C#ProgressBar设计模式
while (!version.Equal(CurrentVersion))
{
IUpgrader myUpgrader = UpgraderFactory.GetUpgrader(version);
myUpgrader.Execute(UpgradedFile,progressbar);
version.Increment();
}
我的问题很简单:升级对象应该如何与进度条进行通信。在上面的代码中,升级对象被给予直接访问进度条,但我想知道是否存在一些更好的方式来做这个或更好的设计模式。
问候, 勒布