【发布时间】:2011-01-16 12:44:41
【问题描述】:
我有一个类必须从一个系统的数据库中获取产品信息并将其保存到另一个系统的产品数据库中。
我将从第一个系统产品 A 和另一个产品 B 中调用产品。产品 B 的数据取决于从用户选择的设置。
因此,产品 B 可能有一个 GetDescriptions 方法,该方法查看用户设置,该设置说使用产品 A 中的 Description1 变量,或者他们可以选择描述 2,或者他们可以使用产品 B 中已有的描述。
这很好,但是有很多设置和获取描述的方法。这就是问题所在,我有很多方法似乎都与产品 B 相关。GetDescription、GetName、GetSku 等方法都是根据用户设置设置的,并且都依赖于产品 A。
虽然它们似乎都与产品 B 相关,但该类变得非常大,我想将一些方法从该类移到另一个类中。我正在考虑使用工厂模式。如下所示(代码只是一个快速的想法)
public class ProductBuilder
{
public ProductB BuildProduct()
{
SkuBuilder.BuildSku(ProductB,ProductA);
ProductDescriptionBuilder.BuildDescription(ProductB,ProductA);
}
}
我的问题是:什么是好的设计?我上面提出的方法可以接受吗?您认为这种设计有什么潜在的问题吗?
【问题讨论】:
标签: oop architecture class-design