我有一个接口如下:C#接口约束
public interface IOutlinesComputable
{
Tuple<Point,Point> getBoundingBox();
}
此外我有一个抽象类形状实现此接口和形状的两个子类:SimpleShape和GroupShapes - 后者一个包含形状的列表 s。
我的客户端代码获得一个列表IOutlinesComputable s。如果边界框重叠,我想通过此列表并检查每对IOutlinesComputable s。如果是这样,我想合并这些:在形状的情况下,通过创建GroupShapes的新实例并向其添加重叠形状 s。
我可以在A类实现IOutlinesComputable接口国家必须有一个子类乙它引用的一个个列表,这样我就可以做这个过程中的所有对象进行结构类似于形状,SimpleShape and GroupShapes?
我只是意识到,我要照顾的是,在IOutlinesComputable列表中的所有对象都是同一类型的(所以它是越来越少不错),但无论如何,我想知道如果事情像这样是可能的,或者如何设计这个最好的方法。
重新考虑你的关系。 “GroupShapes”实际上是一个'List' –
user700390
您可以将任何Shape视为具有重叠形状的列表。它只是发生了一些形状,其中有一个空列表,我们说他们是*简单*。编辑:我在想你的形状是不可改变的。编辑2:如果你有一个'List'的自定义类(如下面的注释中所述),你的形状类可以有一个属性,而所谓的*简单*形状可能有它的空。 –
Theraot
> user700390是的,但我有其他方法与'List'(我在这里省略)有关,我认为这是一个好的地方。 –
nistel