我可以绘制多种形状,例如矩形,正方形,圆形等,并且这种形状的数量可以增加到20个或更多。
我是否必须为所有这些形状创建不同的类并实现Shape。这种方法会给我很多我不喜欢的类。

有没有可以更好地处理这种情况的设计模式?

我们有这样的形状,每个形状中都有不同的对象。
Diagram

最佳答案

子类和参数的混合似乎适合此问题。

指导原则将是:什么可以帮助开发人员使用形状集合,以及什么可以帮助形状实现者有效地提供操作(针对各种形状)。

最好的答案只有在实验之后才能获得。首先从一小部分不同类型的形状开始,然后是一个测试应用程序,该应用程序对形状执行预期的操作,并确定哪种形状类别最有效。

有许多方法可以对形状进行参数化,例如,圆形,椭圆形,抛物线形和双曲线形是圆锥截面的示例。正方形是边长相等的矩形,但也是规则的多边形,而规则的多边形又是封闭的多边形。您可能会发现,仔细选择参数和形状类型将提供许多常见的形状。

关于oop - 此用例的设计模式,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/60624439/

10-10 16:36