【发布时间】:2019-06-20 09:41:42
【问题描述】:
我经常发现自己创建了以“Factory”为后缀的类。这些类往往只负责创建特定类或一组相关类。但是我一直觉得这可能不是最佳实践,并且有更好的方法来解决这个问题。我认为这不是最佳实践的原因之一是,尽管我使用的是“工厂”后缀,但实际上并没有使用工厂设计模式。
假设我有一个类Vehicle,它包含两个变量make 和model。我希望我的问题能够创建许多这些Vehicle 对象,因此我想封装代码以在单个类中创建这些对象。我可能会创建以下类。
public class VehicleFactory
{
public Vehicle CreateVehicle(string make, string model)
{
//create vehicle..
return vehicle;
}
}
VehicleFactory 然后可以在我的程序中的任何地方使用,而无需重复代码和违反 DRY。
当我重构代码时,我经常需要创建这类工厂类,更具体地说,当我发现两个或多个创建相同对象的类时。我想通过提取重复的代码然后将其放在特定的工厂类中来重构代码。
有没有更好的方法来解决这个问题?
【问题讨论】:
标签: c# refactoring dry