我有一点设计危机,我正在制作一个由
组成的飞机课程引擎
2翼
和N个席位
发动机采用发动机尺寸,机翼有跨度。
如果工厂可能需要采用多个参数来设置飞机(机翼,发动机,无座椅),那么拥有PlaneFactory仍然是可行的提前致谢
骨
答案 0 :(得分:4)
如果您的飞机物体变成了一个复杂的物体,您可以使用builder design pattern逐个部件地创建物体
你可以轻松地应用维基百科中的着名披萨示例来解决你的问题,构建器类将有像构建机翼,构建引擎......以及最终getplane()的方法。 您可以使用不同的构建器类来实现抽象构建器类,每个构建器创建一个不同的平面(使用不同的组件)
答案 1 :(得分:1)
这取决于你究竟需要什么,你可以使用更多的设计模式。工厂方法对于复杂的创建来说是一个好主意,这实际上是模式的重点。如果你想逐步建造飞机,特别是当你需要在整个飞机完成之前使用飞机的部件时(例如你不需要机翼出售座位的车票:)))...而不是建造者模式真的是你需要的。它也可能会发生,你创造了许多飞机并且它们都有许多机翼和座椅,它们是相同的(例如你有三种标准类型的引擎),而不是你可以使用Flyweight模式,所以每个飞机都有相同类型的机翼将使用完全相同的翅膀(完全不现实:) ...)。也可能发生这样的情况:为飞机创建一个控制面板需要花费很多工作,这可以事先完成,而不仅仅是复制 - 这就是Prototype模式。我认为这些是你可能需要的最有可能,对于更具体的anser,你应该提供更多关于你需要的信息。