序篇-UML图
闲聊:不积跬步,无以至千里;不积小流,无以成江海。设计模式的学习离不开UML图,我们各个模式的代码时,读完一遍,将代码与UML进行相关匹配可以加深我们对设计模式的理解。
1.为什么要有UML图?
随着一个系统的诞生与维护以及人员的不断变化,整个软件系统的规模越来越大,越来越难以维护,对于开发者来说可以通过花费大量的时间阅读代码的方式熟悉系统,但是跨行如隔山,如何让其他人理解我们的系统,此时为了解决这个痛点,UML诞生了。
2.什么是UML图?
UML-Unified Modeling Language 统一建模语言,又称标准建模语言。是用来对软件密集系统进行可视化建模的一种语言。UML的定义包括UML语义和UML表示法两个元素。通过对大规模,复杂系统进行建模,可以帮助人们更容易理解与吸收。
3.UML图的使用
各位看官,请看下图(3-1),如果您可以完全理解该图,那请为自己点个👍 ,这篇您可以跳过了。如果您不能完全理解该类图,请继续往下走!

图3-1
3.1 实现

图3-2
public interface IAnimal {
}
public class Pig implements IAnimal {
}
Pig实现了IAnimal
3.2 继承

图3-3
public class Pig {
}
public class WKLSmallPig extends Pig {
}
3.3 组合

图3-4
public class Pig {
private PigHead pigHead;
public Pig(PigHead head) {
pigHead = head;
}
}
public class PigHead {
}
PigHead是Pig的组成部分,通常代码中使用组合优先于继承
3.4 聚合

图3-5
public class Class {
private Student student;
}
public class Student {
}
班级与学生之间的关系是聚合,学生不是作为形参传进来的
3.5 依赖

图3-6
public class Student {
void luMao(Cat cat) {
cat.jump();
}
}
public class Cat {
}
学生要进行撸猫需要依赖猫,在luMao()方法中作为参数传进来;依赖与组合的区别在于,没有猪头的猪不是猪,而没有猫的学生还是学生。
3.6 关联

图3-7
public class Student {
//使用成员变量的方法实现关联
private IdCard mCard;
private void doSomthing() {
mCard.printId();
}
//使用方法参数形式实现关联
public void doSomthing(IdCard card) {
idCard.printId();
}
}
关联包含组合与聚合,关联与依赖的区别在于关联是强联系,依赖是弱联系

浙公网安备 33010602011771号