乐趣区

关于java:UML类图还不懂来看看这版乡村爱情类图一把学会

作者:小傅哥
博客:https://bugstack.cn

积淀、分享、成长,让本人和别人都能有所播种!????

一、码场心得

???? 有个词叫内卷重大!

最开始听到这个词是有个小伙伴在我的一篇 HashMap 源码剖析文章下的留言:“哥们,你这叫内卷!”。这篇文章深度解释了扰动函数、负载因子以及相干数学形式的后果验证,有趣味的能够跳过去浏览。《HashMap 外围常识,扰动函数、负载因子、扩容链表拆分,深度学习》

那什么叫内卷呢,乍一看这词还是有点新的。其实内卷化来自单词 involution,也能够称作“过密化”。这样就好解释了,比方;

  1. 100 集体上卫生间就 3 个坑,没法偏心调配,那就谁明天谁穿裤衩谁先上
  2. 100 个 700 分以上的,就 30% 个名额能去清北。3 万多 600 分以上的考生里,很多人可能连 211 都上不了。
  3. 路线拥挤,不能让每个人都开车,只能遥遥无期的摇号排队。

这些都能够解释为过密化带来的内卷重大问题,但好在这些都在一直的优化欠缺。

???? 程序员也有内卷?!

其实大部分时候大家说的程序员内卷,指的是面试造火箭,求职越来越难。

其实从某种角度来说,我集体是不太认可说程序员有内卷的。就整个行业来看,程序员的工作待业状况和薪资待遇都是不错的。有人会感觉面试还得刷题、学源码、看框架、懂架构等等,可这些难道不应该是你做成程序员职业倒退路线上,必经的冲破吗?

可能每个人都会在某个期间感觉本人始终处于瓶颈期,做着反复的事件、码着 CRUD 的逻辑、接触不到外围的技术等等,都会猛的霎时感觉本人快狒狒了。那这样的你仿佛只能用内卷这个词让本人心田均衡了,试问本人,你对本人投入过学习成长的工夫吗?你有打算破局冲破本人的瓶颈吗?如果没有那不叫内卷!

二、会议室

谢飞机,小记,假期回来下班的一周的???? 飞机,被组长安顿了一次我的项目成长分享。

小组长:飞机,你分享的我的项目中,外围模块要给大家讲清楚。这块蛮有技术点的!

谢飞机:嗯嗯,我也在想怎么能让大家听懂。

小组长:最好借助一些工具,把代码逻辑、性能流程,通过图的形式表达出来。

谢飞机:流程图我会画了,然而这里的外围性能类,我还不晓得怎么弄。

小组长:咳咳,用 UML 类图哇,把外围类体现进去。

谢飞机:…,没画过,我内卷了吗?

小组长:不要脸!等我画点材料,教你!

三、农村恋情类图学习

UML(Unified Modeling Language),是一种面向对象设计的建模工具,建模的外围是模型,模型是事实的简化、实在的形象。

在 UML 中,所有的形容包含:事务、关系、图这三局部构件组成,如下图为所有构件的关系。

接下来,咱们就着重解说 UML 中的类图关系,在农村恋情人物里的体现。

1. 类图模型

UML 类图(Class Diagrams),是应用频率最高的 UML 图之一,类图能够示意出类、接口和它们之间的协作关系。各个接口、类、属性、办法,能够用如下形式表白。

2. 继承关系

代码

public class 谢广坤 {
    private String 辈分;
    public void 作妖(){}
}

public class 谢永强 extends 谢广坤 {
}

public class 谢飞机 extends 谢广坤 {}

类图


  • 性能:继承关系
  • 概念:继承(Generaliztion)又叫泛化,用于示意子类继承父类的所有性能。
  • 场景:谢广坤的作妖技能,谢永强和谢飞机继承。谢飞机继承的更好,更能作。

3. 实现关系

代码

public interface 舞术 {void 招式();
}

public class 刘能 implements 舞术 {
    private String 来将姓名;
    public void 招式() {}
}

public class 赵四 implements 舞术 {
    private String 来将姓名;
    public void 招式() {}
}

类图


  • 性能:实现关系
  • 概念:接口、抽象类申明的办法,由类实现(Realiztion)其性能。
  • 场景:在赵四和刘能的一场比舞中,赵四花式走位,被刘能找准机会一踢撂倒。

4. 组合关系

代码

public class 结婚证 {

    private 赵玉田 男方;
    private 刘英 女方;

    public void set 男方(赵玉田 男方) {this. 男方 = 男方;}

    public void set 女方(刘英 女方) {this. 女方 = 女方;}
}

public class 赵玉田 {

    private int 年龄;
    private String 性别;

}

public class 刘英 {

    private int 年龄;
    private int 性别;

}

类图


  • 性能:组合关系
  • 概念:组合(Combination)关系示意类中整体与局部的关系,整体与局部相依相存。
  • 场景:赵玉田和刘英的结婚证,缺一不可。

5. 聚合关系

代码

public class 山庄 {

    private 宋晓峰 晓峰;
    private 李宝库 宝库;

    public void 药膳房(李宝库 宝库) {this. 宝库 = 宝库;}

    public void 保安部(宋晓峰 晓峰) {this. 晓峰 = 晓峰;}

}

public class 李宝库 {private String 职业;}

public class 宋晓峰 {private String 职业;}

类图


  • 性能:聚合关系
  • 概念:聚合(Aggregate)关系,也是用于示意对象的整体和局部,但成员对象能够与整体对象拆散独立存在。
  • 场景:在⛰山庄中药膳方有李宝库、保安部有宋晓峰。但李宝库和宋晓峰都只是其中的一员,都能够来到山庄。

6. 关联关系

代码

public class 豆腐厂 {
    private 王小蒙 员工;
    public void 增加员工(王小蒙 小蒙){this. 员工 = 小蒙;}
}

public class 王小蒙 {
    private 豆腐厂 企业;
    public void 增加企业(豆腐厂 豆腐厂){this. 企业 = 豆腐厂;}

}

类图


  • 性能:关联关系
  • 概念:关联(Association)关系,是类之间罕用的一种关系,示意一类对象与另一类对象的分割。组合、聚合也属于这种关系,但关联关系更弱。
  • 场景:豆腐厂里有王小蒙,但豆腐厂里又不只是有王小蒙,还有王老七。即便小蒙不在,豆腐厂也能够失常运行。而王小蒙还有本人的其余企业,所以这属于一种关联关系。

7. 依赖关系

代码

public class 招商引资 {public void 招商(王大拿 大拿){}}

public class 王大拿 {private String 资源;}

类图


  • 性能:依赖关系
  • 概念:依赖(Dependency)关系当示意一个事务须要应用另外一个事务时,能够应用依赖关系。
  • 场景:招商引资须要王大拿,但并只是就只有这一个大拿。王大拿不来,可能还有李大拿、张大拿。

四、赵家班全景类图

综上,这 6 种关系里,组合、聚合、关联代码构造相似,能够从依赖的强弱进行了解。强弱关系顺次是:继承 > 实现 > 组合 > 聚合 > 关联 > 依赖。

为了更分明的表白出 UML 类关系,咱们把这些画到一整张图中,如下;

五、总结

  • 有人说,如果咱们和外星人???? 十分友善的通信了。那么两个星球之间会进行一些交换,比方问,你好,地球人???? 人你多高呀?地球说 1.75 米。外星人晕了,米是什么单位?这样就只能选取两个星球通用的规范来定义,比方:1 米是光在真空中 1 /299792458 秒内通过的间隔。
  • 其实程序开发也是这样的,为了能够让大家缩小对新常识内容的了解的沟通老本,须要定义一些沟通规范,比方 UML 类图。所以咱们须要学习这些规范的工具化语言,来缩小沟通老本,晋升工作效率。
  • UML 类图也是最罕用的图稿,同时也十分易于把握。为了能够把本人的知识面铺设的更加欠缺,技术栈把握的更加夯实,也为了冲破每一个阶段的瓶颈。那就须要一直学习,一直的积攒,找机会破局。

六、系列举荐

  • 握草,你居然在代码里下毒!
  • 一次代码评审,差点过不了试用期!
  • 程序员为什么热衷于造轮子,升职加薪吗?
  • 全网最火 10 万下载量,《重学 Java 设计模式》(22 个实在开发场景)
  • 面经手册(上最快的车,拿最贵的 offer)
退出移动版