我需要你的帮助我有一个表示为超图的复杂网络超
图顶点有各种类型:图像,标签....
我应该创建数千个顶点
,手动创建它会很困难!
所以我认为工厂模式在这种情况下可能会对我有所帮助,
但是每个顶点类型都有其特定的属性,我应该将它作为参数传递给构造函数
那么在这种情况下工厂方法是正确的选择吗?
我需要你的帮助我有一个表示为超图的复杂网络超
图顶点有各种类型:图像,标签....
我应该创建数千个顶点
,手动创建它会很困难!
所以我认为工厂模式在这种情况下可能会对我有所帮助,
但是每个顶点类型都有其特定的属性,我应该将它作为参数传递给构造函数
那么在这种情况下工厂方法是正确的选择吗?
拥有一个带有一个或多个参数的 create 方法的工厂没有任何问题
Car blueCar = carFactory.create(CarColor.BLUE);
Car redCar = carFactory.create(CarColor.RED);
或具有多种创建方法的工厂:
Car blueCar = carFactory.createBlueCar();
Car redCar = carFactory.createRedCar();
根据用例可能也值得考虑的工厂替代方案是构建器模式。Builder 只有一个不带参数的 create 方法,但它也有设置将由它创建的对象的属性的方法:
carBuilder.setColor(CarColor.BLUE);
Car blueCar = carBuilder.create();
carBuilder.setColor(CarColor.RED);
Car redCar = carBuilder.create();
create 方法如何在内部实际创建对象是一个留给它自己的实现细节。例如,它可以:
工厂方法通常用于创建对象,而无需指定将要创建的对象的确切类。
如果您有不同的顶点实现,这可能是您的选择。