前言
常用UML绘图工具
1、Visual Paradigm
2. Lucidchart
3. Draw.io (现名diagrams.net)
4. PlantUML(推荐)
5. StarUML
类与类之间的关系
UML中的关系是面向对象关系。
PlantUML类之间的关系符号定义
UML 类图实战
1、类 (Class)
2、接口 (Interface)
3、实现 (Implementation)
4、继承 (Inheritance)
5、关联 (Association)
6、聚合 (Aggregation)
7、组合 (Composition)
8、依赖 (Dependency)
Java代码UML综合演示
结语
前言
在Java开发中,UML(统一建模语言)类图是设计和理解系统架构的重要工具。本文将详细介绍Java UML类图中不同结构的表示方法及其对应的绘图工具类型,帮助各位大大更高效地进行系统设计。
常用UML绘图工具
1、Visual Paradigm
特点:功能强大,支持多种UML图,界面友好。
适用场景:适合大型项目和团队协作。
2. Lucidchart
特点:在线工具,易于上手,支持多人协作。
适用场景:适合快速绘制和分享UML图。
3. Draw.io (现名diagrams.net)
特点:免费且开源,支持离线使用,有丰富的模板和符号库。
适用场景:适用于个人和小型团队。
4. PlantUML(推荐)
PlantUML是一个通用性很强的工具,可以快速、直接地创建各种图表。
利用简单直观的语言,用户可以毫不费力地绘制各种类型的图表。 如需详细了解该语言的功能和语法,请参阅《PlantUML 语言参考指南》。
如果您是 PlantUML 的新用户,我们建议您从我们的快速入门页面开始 并快速运行。如果您有任何问题,我们的常见问题页面是一个很有价值的资源。 此外,PlantUML 可以与其他各种工具无缝集成,以增强您的工作流程
特点:基于文本描述生成UML图,可以集成到各种IDE中。
适用场景:适合喜欢编程方式绘制UML图的开发者。
5. StarUML
特点:开源、轻量级,具有良好的扩展性和自定义能力。
适用场景:适合中小型项目的快速原型设计。
类与类之间的关系
UML中的关系是面向对象关系。
PlantUML类之间的关系用以下符号定义
UML类图实战
以下我将使用分别介绍类、接口、实现、继承、关联、聚合、组合、依赖等集中UML主要组成元素,并使用PlantUML演示画出UML实战。
1、类 (Class)
定义:类是面向对象编程的基本单位,包含属性和方法。
表示方式:矩形框,分为三个部分:
顶部:类名
中部:属性(成员变量)
底部:方法(成员方法)
PlantUML
@startuml
class A {
+int a
+String b
+void foo()
+void bar()
}
@enduml
2、接口 (Interface)
定义:接口是一组抽象方法的集合。
表示方式:矩形框,顶部用 <> 标记,列出所有方法。
PlantUML
@startuml
interface Animal {
+void eat()
+void sleep()
}
@enduml
3、实现 (Implementation)
定义:一个类实现一个或多个接口。
表示方式:带空心箭头的虚线,从实现类指向接口。
PlantUML
@startuml
interface Animal {
+void eat()
+void sleep()
}
class Dog implements Animal {
+void eat()
+void sleep()
}
@enduml
4、继承 (Inheritance)
定义:一个类继承另一个类,获得其属性和方法。
表示方式:带空心箭头的实线,从子类指向父类。
PlantUML
@startuml
interface Animal {
+void eat()
+void sleep()
}
class Dog implements Animal {
+void eat()
+void sleep()
}
class smallDog extends Dog {
+void play()
}
@enduml
5、关联 (Association)
定义:两个类之间的关系,被关联方作为成员变量,如“订单”和“顾客”。
表示方式:一条直线连接两个类,可标注角色名、多重性等信息。
PlantUML
@startuml
@startuml
class Order{
+Customer customer
+void createOrder()
}
class Customer{
+String name
+String address
+String phone
}
Order --> Customer
@enduml
6、聚合 (Aggregation)
定义:一种特殊的关联,表示整体与部分的关系,但部分可以独立存在。被关联方作为成员变量,如”车辆“和”轮子“。
表示方式:带空心菱形的线段,菱形靠近整体一方。
PlantUML
@startuml
class Car{
+List<Wheel> wheels
+void buyCar()
}
class Wheel{
+String name
}
Car o-- Wheel
@enduml
7、组合 (Composition)
定义:一种特殊的关联,更强的聚合形式,部分不能脱离整体而单独存在。被关联方作为成员变量,如“房子”和“房间”。
表示方式:带实心菱形的线段,菱形靠近整体一方。
PlantUML
@startuml
class House{
+List<Room> rooms
+void myHouse()
}
class Room{
+String name
+String size
}
House *-- Room
@enduml
8、依赖 (Dependency)
定义:一个类依赖于另一个类,比如作为参数传递或局部变量使用。
表示方式:带箭头的虚线,箭头指向被依赖的类。
PlantUML
@startuml
class House{
+void myHouse(Color color)
}
class Color{
+String name
}
House ..> Color
@enduml
Java 代码UML综合演示
PlantUML
@startuml
class Customer{
-String name
-String address
-String phone
}
class Goods{
-String name
-String price
}
class Order{
-String name
-String serial
-List<Goods> goodsList
}
class MessageType{
-Stringtype
}
class MessageUtils{
+List<MessageType> messageTypes
+sendMessage(String message)
}
interface CustomerService{
+Customer getCustomerById(String id)
}
class CustomerServiceImpl implements CustomerService{
+Customer getCustomerById(String id)
}
interface OrderService{
+Order createOrder(Goods goods)
}
class OrderServiceImpl implements OrderService{
+CustomerServiceImpl customerServiceImpl
+Order createOrder(Goods goods)
}
class MinProgramOrder extends OrderServiceImpl{
+MessageUtils messageUtils
+addMinProgramOrderLog()
+sendMinProgramMessage()
}
Order o-- Goods
CustomerService ..>Customer
CustomerServiceImpl ..>Customer
OrderService ..>Order
OrderService ..>Goods
OrderServiceImpl ..> CustomerServiceImpl
OrderServiceImpl ..>Order
OrderServiceImpl ..>Goods
MinProgramOrder --> MessageUtils
MessageUtils *--> MessageType
@enduml
结语
通过上述介绍,我们了解了Java UML类图中的基本元素及其表示方式。合理使用这些元素可以帮助更好地理解系统的架构和设计,希望这篇文章能够帮助你在实际开发过程中更有效地运用UML类图进行设计和交流。
标签:PlantUML,Java,String,startuml,void,类图,UML,class From: https://www.cnblogs.com/o-O-oO/p/18675367原创 senfel 架构集结号