我有一个StreamCopyOperation类,它为我提供了诸如复制操作的平均速度和其他信息之类的信息。

现在我有一个构造函数,看起来像

public StreamCopyOperation(Stream source, Stream target, int bufferSize, int updateInterval)
{
    //Initialize values
}


和方法

public void CopyStream()
{
    //Copy the streams, send the progress updates, etc...
}


现在我不知道所有参数都应该在构造函数中还是流应该在这样的方法中传递:

public void CopyStream(Stream source, Stream target)
{
    //Copy the streams, send the progress updates, etc...
}


而构造函数仅获取缓冲区大小和传递的更新间隔。
也许所有内容都应该在CopyStream方法中。

是否有最佳实践之类的东西,还是仅仅是设计决定?

最佳答案

我认为这是一个基于您期望如何使用该类的设计决策。

如果它是一次使用类型的类,则可能所有参数都应传递到构造函数中,然后设置其他任何属性,然后调用CopyStream(不带参数)。

但是,如果您希望流参数发生变化,则不要将其传递给构造函数,而应将值传递给CopyStream方法。

最后,如果它确实更像是一次使用型的类,那么也许您应该考虑将该类作为static类,而将CopyStream视为静态类-节省一行代码,并使该类更像是类的帮助程序类型。

希望这可以帮助!

09-12 05:01