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