领导安排画项目类图,下面就是前段时间的杰作,画的不太好,不过也理解了一些东西,记录下来。
image.pnguml类图可以用starUML来画。
类图的关系可以分为四种,依赖、关联、泛化和实现。
1、依赖 用虚线箭头表示
当一种事物发生变化时会影响到使用它的另外的事物,反之则未必。
2、关联 用实线箭头表示
一种结构性关系,若类A单项关联指向类B,则在类A中存在一个属性B
若类A依赖类B,则不会有这个属性,类B的实例可能存在于某个方法调用的函数中,或某个方法的局部变量中。
从上面来看,关联关系>依赖关系
3、泛化 用实线空心箭头表示
也就是继承的关系。
- 实现 用虚线空心箭头表示
接口的实现,比如我们可以新建一个interface接口,作为当前类的接口实现。
5.聚合 用空心的菱形+实线箭头
表示一种弱的‘拥有’关系,即has-a的关系,体现的是A对象可以包含B对象,但B对象不是A对象的一部分。 两个对象具有各自的生命周期。
6.组合 用实心的菱形+实线箭头
组合是一种强的‘拥有’关系,是一种contains-a的关系,体现了严格的部分和整体关系,部分和整体的生命周期一样。
具体的画法可以用staruml中的工具来画
image.png
在学习过程中看到过很多这张图,自己通过这里也更加清楚地理解了这些关系和画法。
image.png
回到我们的项目来。
我们的项目,有两个实体,user和room。
user又分为主持人,b端用户和c端用户。
room又分为主持人房间和用户房间。
通过user通过Roomservice创建房间,Roomservice作为房间的管理类,RoomBuilder作为直播sdk的api的类,Roomservice通过调用RoomBuilder来创建了房间实现了相应的功能。
Roomservice又通过interface callBack给user,进行相应的监听。
总结出来,我认为可以算为四个实体,user room Roomservice RoomBuilder 一个interface。
网友评论