1. 继承(Generalization)
继承是对象间的一种层次关系,允许子类继承并扩展父类的功能。
UML线:带有空心箭头的直线,箭头指向基类(父类)。
class Parent {public void parentMethod() {System.out.println("This is a method in the parent class.");}
}class Child extends Parent {public void childMethod() {System.out.println("This is a method in the child class.");}
}
在这个例子中,Child
类继承了Parent
类,拥有Parent
类的方法以及自己的方法。
2. 实现(Implementation)
实现关系指的是类实现接口中声明的方法。
UML线:带有空心箭头的虚线,箭头指向接口。
interface Animal {public void eat();
}class Dog implements Animal {public void eat() {System.out.println("Dog is eating.");}
}
Dog
类实现了Animal
接口,提供了eat
方法的实现。
3. 关联(Association)
关联表示不同类的对象之间的连接。它可以是双向的,也可以是单向的。不是其他的关系,并且两个类有联系,就是关联关系。
UML线:普通的直线,两端可能有箭头,表示关系的方向。箭头或无箭头取决于关系的双向性或单向性。通常会在线旁边标注角色名和/或多重性(比如1..*表示一个到多个)。
双向关联
public class Customer{private product[] prodects;}
public class Product{private Customer customer;}
单向关联
public class Customer{private Address address;}
public class Address{}
自关联
public class Node{private Node subNode;}
多重关联
public class Form{private Button[] buttons;}public class Button{}
一个按钮,与1到1和界面有关。一个界面,与0到多个按钮有关。
4. 聚合(Aggregation)
聚合是一种特殊的关联关系,表示“整体-部分”关系,但部分可以脱离整体单独存在。聚合关系通常使用成员变量来实现,且成员变量的生命周期不由容器对象管理。
UML线:带有空心菱形的直线,菱形在整体的一端,箭头指向部分的一端。
public class Car {private Engine engine;public Car(Engine engine){this.engine=engine;}public void setEngine(Engine engine){this.engine=engine;}
}public class Engine {}
5. 组合(Composition)
组合也是一种“整体-部分”关系,但与聚合不同的是,部分不能脱离整体存在。在组合关系中,部分的生命周期由整体管理。
UML线:带有实心菱形的直线,菱形在整体的一端,箭头指向部分的一端。
public class Head{private Mouth mouth;public Head(){mouth=new Mouth();}
}
public class Mouth{}
6. 依赖(Dependency)
依赖表示一个类的实现依赖于另一个类的定义。一个类的实现需要另一个类的协助。
UML线:带有箭头的虚线,箭头指向被使用者,被依赖者。
public class Driver{public void drive(Car car){car.move();}
}public class Car{public void move(){}}
Driver需要使用Car类方法,Driver依赖于Car,Car被Driver所依赖。Car被依赖,Driver是依赖方。
结尾
最后,感谢您阅读我的文章,希望这些内容能够对您有所启发和帮助。如果您有任何问题或想要分享您的观点,请随时在评论区留言。
同时,不要忘记订阅我的博客以获取更多有趣的内容。在未来的文章中,我将继续探讨这个话题的不同方面,为您呈现更多深度和见解。
谢谢您的支持,期待与您在下一篇文章中再次相遇!