gpt4 book ai didi

C# 进度条设计模式

转载 作者:太空宇宙 更新时间:2023-11-03 22:21:23 25 4
gpt4 key购买 nike

我正在开发一个数据库升级应用程序。升级程序更新数据库的模式(通过执行 SQL 语句向现有数据库添加新列、重命名列、添加新表、新 View )。当用户想要从版本 1.0 升级到 2.0 时,从对象工厂中获取“Upgrader”对象,并调用每个“Upgrader”的“Execute”方法。应用程序的 GUI 有一个进度条,每次升级程序对象执行 SQL 语句时,进度条都会增加。

            while (!version.Equal(CurrentVersion))
{

IUpgrader myUpgrader = UpgraderFactory.GetUpgrader(version);

myUpgrader.Execute(UpgradedFile,progressbar);

version.Increment();
}

我的问题很简单:升级程序对象应该如何与进度条通信。在上面的代码中,升级程序对象可以直接访问进度条,但我想知道是否存在更好的方法或更好的设计模式。

问候,塞布

最佳答案

我可能会为进度条操作(C# 示例)组合一个界面:

interface IProgressBar
{
int MinValue { get; set; }
int MaxValue { get; set; }
int Value { get; set; }
}

然后我会让 Upgrader 对象采用该接口(interface)类型的参数。最后,我将创建一个实现该接口(interface)的类,它还包含对用于可视化进度的进度条组件的引用。

这样一来,升级程序与可视化进度之间就没有紧密耦合。

关于C# 进度条设计模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2967047/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com