在UML类图中,关联是比依赖关系更强的关系,
关联和依赖性可以如下实现:
关联-> A具有一个B对象(作为成员变量)
public class A {
private B b;
A(B b){
this.b= b;
}
public void myMethod() {
b.callMethod();
}
}
依赖关系-> A引用B(作为方法参数或返回类型)
public class A {
public void myMethod(B b) {
b.callMethod();
}
}
在上面的示例中,可以使用关联或依赖性来实现调用b.callMethod()
我想知道何时使用其中一种方法:
p.s-任何示例都将不胜感激:)
答案 0 :(得分:1)
您仅对打算在任一关联类中引入拥有财产的关联进行建模。如果不是这种情况,并且您仅在参数中引用另一个类,则将使用依赖项。在建模过程中,通常从简单关联或临时依赖关系开始。这是因为您感觉到两者之间的约束力。一个简单的(最终指示)关联是该属性的第一个指示。在稍后的设计阶段中,您将为角色命名并添加多重性(因此删除了方向箭头,因为现在通过角色名称的用法来明确方向)。最后,放置点以表明角色名称应实现为拥有的属性。依赖关系是一个可选的东西,例如“也在这里看”。它只是有助于导航到正确的位置,但是您不会为其创建任何属性。
答案 1 :(得分:0)
让我们看看打印机的示例:
public class Printer {
private Paper paper;
private Inks inks;
Printer(Paper paper, Inks inks){
this.paper = paper;
this.inks = inks;
}
public PrintedFile print(PDFFile pdfFile){
// print PDFFile to paper
}
}
关联(打印机具有...)(聚合/组成): 1)纸 2)墨水
依赖: 1)PDF文件(Pdf文件不是打印机的一部分,打印机只是使用它...)
恢复:如果对象A应该将对象B作为其内部的一部分,则它是关联。如果对象A仅使用对象B,而对象B不是对象A的一部分,则它是依赖项。