C# 绘图应用程序使用哪种设计模式
我正在为autocad编写外接程序,但我遇到了一个设计问题。我认为这可以通过设计模式来解决 我试图画一张桌子,桌子有两部分,一个框架和一个顶面。因此,我有以下三个课程:C# 绘图应用程序使用哪种设计模式,c#,.net,oop,design-patterns,C#,.net,Oop,Design Patterns,我正在为autocad编写外接程序,但我遇到了一个设计问题。我认为这可以通过设计模式来解决 我试图画一张桌子,桌子有两部分,一个框架和一个顶面。因此,我有以下三个课程: 绘制:此类验证用户输入并请求插入点,创建框架和曲面,并将新创建的实例插入autocad DB 帧:根据长度和深度计算帧 曲面:根据长度和深度计算曲面 我的问题是,如果用户给定的长度值大于max,则我必须生成2个或更多曲面。曲面类还必须知道哪个曲面是第一个曲面和最后一个曲面。而Draw类还应该知道第一个曲面的端点放置第二个曲面
- 绘制:此类验证用户输入并请求插入点,创建框架和曲面,并将新创建的实例插入autocad DB
- 帧:根据长度和深度计算帧
- 曲面:根据长度和深度计算曲面
我的问题是,如果用户给定的长度值大于max,则我必须生成2个或更多曲面。曲面类还必须知道哪个曲面是第一个曲面和最后一个曲面。而Draw类还应该知道第一个曲面的端点放置第二个曲面的位置 我现在所做的是将一个名为calcNumberOfSurface(int len)的方法放入Draw类中,在这个方法中,我迭代了曲面的数量,以在每次类曲面的新instate时创建曲面。这个解决方案也有两个问题,曲面类不知道它是第一个还是最后一个。无法定义第一个曲面的结束位置。我必须在Draw类中实现这一点
有没有解决这个问题的最佳实践或设计模式?我同意普雷斯顿的观点。在您开始设计模式之前,我认为您必须首先考虑所有必需的类以及每个类的成员。例如:
- “结束位置”不是曲面类的成员吗
- 另一类可能表示
(曲面列表)。此类将包含第一个曲面和最后一个曲面列表