类与类之间的关系图
类与类之间关系有:关联、聚集、组合、泛化、依赖等。
一、关联(Association):两个相对独立的类,当一个类的实例与另一个类的实例存在固定关系时,这两个对象之间就存在关联关系。
1、单项关联:A1—>A2:表示A1认识A2,A1知道A2的存在,A1可以调用A2的方法和属性。
例如:订单和商品,订单中包括商品,但是商品并不了解订单的存在。
类与类之间的单向关联图:
代码:
Public class Order
{
Public List<Product> order;
Public void AddOrder(Product product )
{
order.Add(product);
}
}
Public Class Product
{
}
代码表现为:Order(A1)中有Product(A2)的变量或者引用。
2、双向关联
B1—B2:表示B1认识B2,B1知道B2的存在,B1可以调用B2中的方法和属性;同样B2也知道B1的存在,B2也可以调用B1的方法和属性。
例如:订单和客户,订单属于客服,客服拥有一些特定的订单。
代码:
Public class User
{
Public List<Order> GetOrder()
{
} return new List<Order>();
}
Public Class Order
{
Public User GetUserByOrderID(string OrderId )
{
Return new User();
}
}
3、自身关联
同一个类对象之间的关联
类与类之间自身关联图
4、多维关联图
多个对象之间存在关联
例如:公司雇用员工,同时公司需要支付工资员工
类与类之间的多维关联图:
二、泛化关系(generalization)
类与类的继承关系,类与接口 的实现关系。
例如:父与子、动物与人
类与类之间的泛化关系图:
三、依赖关系(dependency)
类A要完成某个功能必须引用类B,则A与B存在依赖的关系。
类与类的依赖关系图:
四、聚合关系
当对象A被加入对象B中,成为对象B的组成部分时,对象B和对象A之间为聚合关系。聚合是关联关系的一种,是较强的关联关系。
例如:商品和它的规格、样式
类与类的聚合关系图:
五、组合
对象A包含对象B,对象B离开对象A没有实际意义。是一种更强的关联关系。
例如:window窗体由滑动条slider、头部header和工作区Panel组合而成 。
类与类的组合关系图