我应该使用工厂模式



i当前有一个名为ConfigProfile Factory的类,它包含默认配置文件,当前设置等的方法。该课程通过我的个人资料服务在内部使用。我当时想,最好简单地将其作为真正的工厂,而只为我们正在配置的每种产品创建适当的个人资料服务。

    public string GetDefaultProfile(string product)
    {
        if (string.IsNullOrEmpty(product))
        {
            throw new ArgumentNullException("product");
        }
        string profile = null;
        if (product.Contains("Product 1", StringComparison.CurrentCultureIgnoreCase) ||
            product.Contains("product1", StringComparison.CurrentCultureIgnoreCase))
        {
            profile = Resources.product1DefaultProfile;
        }
        return profile;
    }

那只是一个产品,但是我们还有几个产品,这意味着我将不得不添加更多语句。配置文件服务已经具有接口,并且是我大多数程序的使用。另外,有几种使用这种方法相同的方法。那么,根据产品名称返回适当的个人资料服务的工厂会是更好的解决方案,还是我可以做的其他事情?

编辑:这是此类中更简单的方法之一。越复杂的是从所需地点检索当前系统设置的一个。像所有产品一样,都有IIS设置,但是有些产品将具有主题支持,而另一些产品将具有数据库配置。

工厂是一个很好的解决方案。它允许您隐藏简单接口后面的配置复杂性。

如果您需要能够在运行时/启动时配置它,请与策略结合使用。

可以将两个解决方案(静态工厂或策略)与原型结合使用。如果您经常使用相同的配置文件,并且它是仅读取的,则原型将作为优化。

编辑:您可能已经在使用原型。您的示例代码看起来好像是在复制/引用配置文件,而不是将其构建为复杂的产品。

最新更新