这段时间学习java设计模式的设计原则,使用到了UML建类图,写一篇博客记录1下
年轻的好处,是可以在没有看清楚这个世界之前,做率性的事。荒唐也好,可笑也好,那都是无悔的青春。
什么是UML类图建模:
- UML:统一建模语言,是一种可视化的面向对象建模语言,是一种用来对真实世界物理进行建模的标准标记;
- 建模:创建模型
- UML类图建模: 使用UML语言创建类图模型,
所以到底是什么?
效果图(1.1)
:
这个类图就是用UML建的模型.
UML建模使用场景
- 常用与设计模式的学习,或者功能开发的实现
- 设计开发流程
Android studio 安装UML插件(方式一)
此方法通过UML语法来构图,
- 缺点:要写代码,不能直接拖拽,优点
- 优点:支持高版本studio,接下来讲的是android studio 4.1版本
搜索 PlantUML integation并下载:
效果图(1.2)
:
我的studio是4.1的所以PlantUML integation支持高版本哦
最后重启Android Studio即可
PlantUML integation使用
在需要建模的地方创建建图模型
效果图(1.3)
:
创建完成之后来看看效果图:
效果图(1.4)
:
稍后我会说UML建模语法,大家不要着急,在给大家介绍一种自动生成建模的插件.
PlantUML integation位置:
在android sutdio 右侧
Android studio 安装UML插件(方式二)
此方法通过UML语法来自动生成类图:
- 缺点:studio高版本目前不支持(本篇使用的是studio3.5支持)
- 优点:不用写代码,自动生成类图.
下载插件:
我已经存到我的百度网盘:点击下载 提取码:0ftf
或扫描二维码:
下载完成之后得到这个文件:
效果图(1.5)
:
插件引用
Settings ->Plugins->install Plugin from Disk…
找到刚刚下载的插件,添加即可
最后重启studio即可
simpleUML使用:
以刚刚例子举例:
代码事例:
public class A {
int c;
}
public class B extends A implements E{
@Override
public void size() {
}
}
public class C extends A {
}
public class D extends A {
}
public interface E {
void size();
}
分析:
- B,C,D继承自A类
- B实现E类
- 红框:创建UML类图路径
- 黄框:之前创建的类图
红框点击之后弹出:
绿框:uml类图保存路径
黑框:uml类图名字
最终效果:
效果图(1.6)
:
simpleUML位置:
simpleUML总结:
- 构建的同一个包内的关系
- 可以自动生成类图
- studio高版本目前不支持,比如AS4.1不支持,我知道的是支持3.5以下
UML建模语法
既然simpleUML不支持高版本,那么咋们就学学UML语法,用代码来UML建模
分类:
- 泛化/继承(Generalization)
- 实现(Realization)
- 依赖(Dependency)
- 关联(Association)
- 聚合(Aggregation)
- 组合(Composition)
l类型 | 标识 | 描述 | 效果 |
---|---|---|---|
组合(Composition) | –* | 实线菱形填充箭头 | |
聚合(Aggregation) | –o | 实线空心菱形箭头 | |
实现(Realization) | –|> | 实线空心三角箭头 | |
泛化/继承(Generalization) | …|> | 虚线三角空心箭头 | |
关联(Association) | -> | 实现箭头 | |
依赖(Dependency) | …> | 虚线箭头 |
总的来说,强弱程度依次为:组合>聚合>关联>依赖
更多表示:
- -表示 private
- +表示 public
- #表示 protected
UML代码:
@startuml
class B<泛型>{
==变量==
+<泛型> a;
- int b;
# int c;
{
static} int d;
--方法--
{
abstract} int getWidth();
void getHeight();
}
note left: 这里是B的左侧注释
@enduml
UML图(2.1)
:
特殊样式:
@startuml
package foo1 <<Node>> {
class Class1
}
package foo2 <<Rectangle>> {
class Class2
}
package foo3 <<Folder>> {
class Class3
}
package foo4 <<Frame>> {
class Class4
}
package foo5 <<Cloud>> {
class Class5
}
package foo6 <<Database>> {
class Class6
}
@enduml
UML图(2.1)
:
猜你喜欢:
java 七大设计原则之单一职责,接口隔离原则(文字代码相结合理解)
java 七大设计原则之依赖倒置,里氏替换原则(文字代码相结合理解)
java 七大设计原则之迪米特原则,开闭原则,合成复用原则(文字代码相结合理解)
原创不易,留下你的赞在走哦(•́へ•́╬)