刚开始使用Star UML
来绘制class diagram
。
与任何应用程序一样,MyBLL
(业务层)在与Model
(数据库层)交互后创建DAO
的实例。
或多或少,简化(为清晰起见)类图如下所示:
很明显,BLL完成后将不再使用模型类。
我应该在这里使用什么?将aggregation
映射到composition
时MyBLL
或MyModel
。
我使用了从composition
到MyBLL
的{{1}}关系。我的逻辑是在MyDAO
图层存在后,BLL
将不再存在,因为它在MyDAO
中被引用。这是对的吗?
注意:这是我使用C#创建的MyBLL
项目。
答案 0 :(得分:5)
聚合表示子节点在没有父节点的情况下存在。因此,Classroom
(父级)和Student
(子级)是最常见的示例。您可以在哪里独立拥有教室和学生。
复合表示如果没有父级,则子项不能存在。因此,House
(父级)和Room
(子级)是最常见的示例。在没有房间的情况下你不能拥有房间的地方。
如果没有确切地知道你是如何对此编码的,我猜你会得到这个:
1)MyModel可能是复合关系,因为它在MyBLL中一直包含(与其他模型一起)。当MyBLL超出范围时MyModel也是如此。
2)MyDAO可能是聚合,因为它可以在没有MyBLL的情况下存在,因为它被其他组件使用?即它可能是由主机在你的MyBLL之外创建的并注入你的BLL?
根据您构建系统的实际方式,这两种说法都可能不正确。