来自相同实体的继承和组合关系

时间:2013-03-18 16:08:38

标签: vb.net design-patterns

有什么反对做这样的事情:

Public Class clsLocation

        Inherits clsEntity
    End Class

    Public Class clsPerson
        Inherits clsEntity
    End Class

    Public Class clsEntity

    End Class

    Public Class clsEvent
        Inherits clsEntity

        Private persons() As clsPerson
        Private locations() As clsLocation        
    End Class

位置是实体,人是实体(clsEntity中的函数在clsPerson和clsLocation中被覆盖)。活动有一个或多个人,活动有一个或多个地点。

我以前没见过这个。

1 个答案:

答案 0 :(得分:1)

我认为没有任何缺点可以像你所拥有的类架构,虽然我会使用clsEntity的抽象类(如果你永远不需要实例化它)而不是使用“cls”将类名称作为前缀。< / p>

我首先会问自己,为什么你不会在Event类中只有一个数组,因为它们继承了同一个类(即Private entities() as clsEntity)但实际上这一切都取决于你的业务逻辑,如果你的事件有两个明显不同的关系,具有不同的含义,然后保持这种方式。

PS。您可以使用专用的堆栈交换进行代码审查,以用于此类问题:https://codereview.stackexchange.com/