C#ProgressBar设计模式
我正在开发一个数据库升级应用程序。升级程序更新数据库的架构(通过执行SQL语句向现有数据库添加新列、重命名列、添加新表、新视图)。当用户希望从1.0版升级到2.0版时,将从对象工厂获取“Upgrader”对象,并调用每个“Upgrader”的“Execute”方法。应用程序的GUI有一个进度条,每次upgrader对象执行SQL语句时,进度条都会增加C#ProgressBar设计模式,c#,design-patterns,progress-bar,C#,Design Patterns,Progress Bar,我正在开发一个数据库升级应用程序。升级程序更新数据库的架构(通过执行SQL语句向现有数据库添加新列、重命名列、添加新表、新视图)。当用户希望从1.0版升级到2.0版时,将从对象工厂获取“Upgrader”对象,并调用每个“Upgrader”的“Execute”方法。应用程序的GUI有一个进度条,每次upgrader对象执行SQL语句时,进度条都会增加 while (!version.Equal(CurrentVersion)) {
while (!version.Equal(CurrentVersion))
{
IUpgrader myUpgrader = UpgraderFactory.GetUpgrader(version);
myUpgrader.Execute(UpgradedFile,progressbar);
version.Increment();
}
我的问题很简单:upgrader对象应该如何与progressbar通信。在上面的代码中,upgrader对象可以直接访问progressbar,但我想知道是否有更好的方法来实现这一点,或者是否存在更好的设计模式
问候,,
Seb我可能会为进度条操作设置一个界面(C#示例): 然后我会让Upgrader对象接受该接口类型的参数。最后,我将创建一个实现接口的类,该类还包含对进度条组件的引用,该组件用于可视化进度
这样,升级程序和进度可视化方式之间就不会紧密耦合。我可能会为进度条操作创建一个界面(C#示例): 然后我会让Upgrader对象接受该接口类型的参数。最后,我将创建一个实现接口的类,该类还包含对进度条组件的引用,该组件用于可视化进度
这样,升级程序和进度可视化方式之间就不会有紧密的耦合。要实现,我将向IUpgrader添加一个从升级程序馈送的ProgesEvent。gui可以向该事件添加eventlisteners,并相应地更新progessbar
许多应用程序都在运行。他们使用一个计时器来推进进度条,使繁忙的应用程序保持活动状态。为了实现,我将向IUpgrader添加一个从升级程序馈送的进度事件。gui可以向该事件添加eventlisteners,并相应地更新progessbar 许多应用程序都在运行。他们使用计时器推进进度条,使繁忙的应用程序保持活动状态
interface IProgressBar
{
int MinValue { get; set; }
int MaxValue { get; set; }
int Value { get; set; }
}