0

首先,我有一个如下所示的类签名:

internal class JobStore : IJobStore
{
    private readonly IFileHandler fileHandler;
    private readonly IJobSerializer serializer;
    private readonly IJobValidator validator;
    internal readonly string DirectoryPath = "JobStore";
    internal readonly string JobExtension = ".job";

    public JobStore(IFileHandler fileHandler, IJobSerializer jobSerializer, IJobValidator jobValidator)...

我有点想将 DirectoryPath 和扩展名删除到他们自己的类中,但我不太确定。我确实认为在构造函数中有四个对象是个坏主意。

我的问题是如何将其中两个对象组合起来以减少我在此方法中使用的参数数量,三个太多了吗?

为问题的模糊性道歉。

4

4 回答 4

4

看起来您应该重构为 Aggregate Services

于 2012-07-12T19:32:02.440 回答
0

构造函数中的 4 个对象并不算多。没有特定数量的参数算作“太多”

请注意,对于您可能希望或可能不希望使用构造函数的事物,还有其他更灰色的标准,但具体的参数计数不是您应该关注的地方。

只要确保你的类代表某种名词,你会没事的

于 2012-07-12T19:36:51.513 回答
0

你可以有一个带有多个参数的构造函数,没关系。其实三个是少数参数,也许你会有n个参数的方法和构造函数,只要你需要它们。

于 2012-07-12T19:46:43.667 回答
0

如果您在使用它时担心所需参数的数量,那么使用默认参数可能会有所帮助。

这样,如果您发现自己只更改了一个或两个参数并在所有其他时间使用默认值,则在更新时不必传递这么多参数。

但是,这不会从构造函数本身中取出参数。

所以,我不确定你在找什么,但也许这可能会对你有所帮助。:)

http://msdn.microsoft.com/en-us/library/dd264739.aspx

于 2012-07-12T19:48:55.893 回答