IntelliJ IDEA 还能画思维导图,果然最强 IDE!

Java技术栈 2021-02-23 14:44:49
思维 IDEA 还能 intellij 最强


最近栈长发现 IntelliJ IDEA 居然还能画思维导图,太牛逼了!

当然这得借助 IDEA 的 UML 插件,因为它本身也是一个 UML 图,所以这篇就从 UML 图开撕,看 IDEA 怎么画思维导图,顺便带大家了解下什么是 UML 图。

什么是 UML?

UML 全称:Unified Modeling Language,统一建模语言,由 OMG 组织(Object Management Group 对象管理组织)于 1997 年发布。

UML 是面向对象设计的建模工具,是独立于任何具体程序设计语言,UML 可以通过简单又直观的语言来定义图形。

如果你还不知道是什么 UML 图,举个例子吧,比如说我们经常遇到的设计模式必须用到的类图,以及业务流程用到的时序图,这些经典的 UML 图基本已经深入人心了。

其实,UML 图远不止这些,UML 图还包括序列图、用例图、类图、活动图、协作图、组件图、对象图、状态图、交互图、部署图等。

在线画 UML

我们可以通过 PlantUML 网站在线画 UML 图,PlantUML 是一个开源项目,支持快速绘制各种 UML 图。

PlantUML 网址:

http://www.plantuml.com/

只要熟悉 UML 语言的语法,就能轻松画出这种类图。

IDE 插件画 UML

PlantUML 同时提供了 Eclipse 和 IntelliJ IDEA 插件,本文以 IDEA 为例进行演示,可以在 IDEA Plugins 里面搜索 "PlantUML" 安装即可,更多 IDEA 插件及教程关注公众号Java技术栈回复 "IDEA" 获取。

安装完成之后,通过菜单 New > PlantUML File 来创建一个 UML 图:

点击菜单之后,会让你输入 UML 图形文件名,以及选择 UML 图类型。

从这里面就能看到所有能创建的 UML 图类型,翻到下面还有组织架构图、原型图,以及现在比较流行的思维导图,不过画这些很突兀,不是很推荐,下面会给大家演示。

比如说我们创建一个比较经典的类图(Class):

左边就是默认生成的 UML 类图源码,右边是 UML 图形生成区,不过报错了,说找不到 Graphviz 这个依赖,那就需要安装一下。

Graphviz 下载地址:

https://graphviz.org/download/

上面提供了各个操作系统的安装方式,安装完成之后再重启 IntelliJ IDEA 即可。

重启之后,可以看到经典的 UML 类图:

PlantUML 插件还能生成以下 UML 图,及带默认模板。

时序图:

用例图:

活动图:

状态图:

思维导图:

牛逼吧,十几行代码生成一个思维导图,不过这个思维导图外观比较经典,适合做一些简单的思维导图,其他更复杂的思维导图还是建议用其他专业的工具会比较方便。

组织架构图:

原型图:

可以看到有些图并不是很适合用 UML 来画,UML 都是用代码来生成图形,有一定的学习成本,另外,相比市面上的其他画图工具,不论是美观、还是效率上,都还有有差距的。当然,如果你不要求美观,图形简单,UML 还是能满足你的。

本文只是介绍如何通过网页和 IDEA 插件来画 UML 图,UML 语法和设计并不是本文重点,有兴趣的可以网上搜索学习,关注公众号Java技术栈,在后台回复关键字 "PlantUML" 也可以获取一份完整版中文教程。

IDEA 香是香,可能你会说用它要收费,其实它也有开源的社区版本,收费的专业版也很容易申请到激活码,关注公众号Java技术栈,回复:IDEA,可以阅读我分享过的获取正版 IDEA 激活码的教程,很多粉丝都反馈说轻松得到了,感兴趣的都可以去申请,不能太容易了。

最后,如果本文对你有帮助,点个在看鼓励一下哦!也欢迎分享转发给更多有需要的朋友~

你工作中有用到 UML 图吗?欢迎分享~

版权申明:本文系公众号 "Java技术栈" 原创,原创实属不易,转载、引用本文内容请注明出处,禁止抄袭、洗稿,请自重,尊重他人劳动成果和知识产权。

近期热文推荐:

1.600+ 道 Java面试题及答案整理(2021最新版)

2.终于靠开源项目弄到 IntelliJ IDEA 激活码了,真香!

3.阿里 Mock 工具正式开源,干掉市面上所有 Mock 工具!

4.Spring Cloud 2020.0.0 正式发布,全新颠覆性版本!

5.《Java开发手册(嵩山版)》最新发布,速速下载!

觉得不错,别忘了随手点赞+转发哦!

版权声明
本文为[Java技术栈]所创,转载请带上原文链接,感谢
https://segmentfault.com/a/1190000039261369

  1. Golang 实现 Redis(9): 使用GeoHash 搜索附近的人
  2. RxHttp - 轻量级、可扩展、易使用、完美兼容MVVM、MVC架构的网络封装类库
  3. Golang realizes redis (9): using geohash to search nearby people
  4. Rxhttp - lightweight, extensible, easy to use, perfectly compatible with MVVM, MVC architecture network encapsulation class library
  5. Golang realizes redis (9): using geohash to search nearby people
  6. Rxhttp - lightweight, extensible, easy to use, perfectly compatible with MVVM, MVC architecture network encapsulation class library
  7. 读懂框架设计的灵魂 — Java 反射机制
  8. 治疗磁盘空间不足焦虑症,释放容器占用空间——Win10+docker篇
  9. 别再用jodatime了!全网最权威Java8日期时间类LocalDate、LocalDateTime详解
  10. Understanding the soul of framework design java reflection mechanism
  11. 配置客户端以安全连接到Apache Kafka集群4:TLS客户端身份验证
  12. Treating anxiety of insufficient disk space and releasing space occupied by containers -- win10 + docker
  13. Don't use jodatime any more! The most authoritative java 8 date and time classes in the whole network: detailed explanation of localdate and localdatetime
  14. Configure clients to connect securely to Apache Kafka Cluster 4: TLS client authentication
  15. Spring break
  16. 高性能MySQL(三):Schema与数据类型优化
  17. High performance mysql (3): schema and data type optimization
  18. redis解决缓存、击穿、雪崩
  19. redis
  20. 骑士卡:基于Kafka搭建消息中心,上亿消息推送轻松完成
  21. Redis solves cache, breakdown and avalanche
  22. redis
  23. Knight card: build a message center based on Kafka, and push hundreds of millions of messages easily
  24. Oracle OCP 19c 认证1Z0-083考试题库(第2题)
  25. redis的三种模式
  26. kubernetes和docker----2.学习Pod资源
  27. 谈一谈如何远程访问MySQL(腾讯云,云主机)
  28. Linux(五):Linux的文档编辑器Vi
  29. Oracle OCP 19C certification 1z0-083 examination question bank (question 2)
  30. 云原生项目实践DevOps(GitOps)+K8S+BPF+SRE,从0到1使用Golang开发生产级麻将游戏服务器—第6篇
  31. kubernetes和docker----2.学习Pod资源
  32. JSP基于Java开发Web应用程序特点有哪些?
  33. Three modes of redis
  34. Kubernetes and docker -- 2. Learning pod resources
  35. Linux (5): the document editor VI of Linux
  36. Cloud native project practice Devops (gitops) + k8s + BPF + SRE, using golang to develop production level mahjong game server from 0 to 1
  37. Kubernetes and docker -- 2. Learning pod resources
  38. What are the characteristics of JSP developing web application based on Java?
  39. Lottie error: java.lang.AssertionError : android.util.JsonReader .peek
  40. Rxhttp - lightweight, extensible, easy to use, perfectly compatible with MVVM, MVC architecture network encapsulation class library
  41. docker入门到熟练
  42. Java之HTTP网络编程(一):TCP/SSL网页下载
  43. Introduction to docker
  44. HTTP network programming in Java (1): TCP / SSL web page download
  45. mysql 的ACID以及隔离级别
  46. Acid and isolation level of MySQL
  47. Java序列化对字段名的影响
  48. The influence of Java serialization on field names
  49. Redis 日志篇:系统高可用的杀手锏
  50. Java中把一个对象复制给另外一个对象引发的思考
  51. Java之HTTP网络编程(一):TCP/SSL网页下载
  52. Redis log: the killer of system high availability
  53. Thinking about copying one object to another in Java
  54. HTTP network programming in Java (1): TCP / SSL web page download
  55. 数据库--oracle安装配置(本地安装的步骤及各种问题解决方案)
  56. 从事Java9年,27天熬夜把近年遇到的面试题收录成册全网开源!
  57. Database -- Oracle installation configuration (local installation steps and various problem solutions)
  58. Engaged in Java for 9 years, 27 days stay up late, the interview questions encountered in recent years included into a volume, the whole network open source!
  59. Java序列化 / 调用 Wildfly 服务接口异常:EJBCLIENT000409
  60. docker-compose部署Estack