当使用一个对象作为字段(关联)与方法参数(依赖)作为另一个对象的内部时
when use one object as a field(association) vs method parameter(dependancy) as inside of another object
在 UML class 图中,关联是比依赖关系更强的关系,
关联和依赖可以实现如下:
关联 --> A 有一个 B 对象(作为成员变量)
public class A {
private B b;
A(B b){
this.b= b;
}
public void myMethod() {
b.callMethod();
}
}
依赖 --> A 引用 B(作为方法参数或 return 类型)
public class A {
public void myMethod(B b) {
b.callMethod();
}
}
在上面的示例中调用 b.callMethod()
可以使用关联或依赖来实现
我想知道何时使用其中一种方法:
- 一个对象将另一个对象作为字段(关联)
- 对象接受另一个对象作为方法参数(依赖)???
p.s - 任何例子都非常受欢迎:)
让我们看一下打印机的例子:
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
}
}
关联(打印机有...)(aggregation/composition):
1)纸
2) 油墨
依赖性:
1) PDF文件(Pdf文件不是打印机的一部分,打印机只是用它...)
总结:如果对象A应该有对象B作为其内部的一部分,这就是关联。如果对象 A 只使用对象 B,而对象 B 不是对象 A 的一部分,则它是依赖关系。
你只为你打算在任何一个连接的 class 中引入一个拥有的 属性 的协会建模。如果不是这种情况,并且您只在参数中引用另一个 class,那么您将使用依赖项。在建模过程中,您通常从一个简单的关联或一个特别的依赖关系开始。这是因为你感受到了两者之间的约束力。一个普通的(最终定向的)关联是 属性 的第一个迹象。在稍后的设计阶段,您将命名角色并添加多重性(因此删除方向箭头,因为方向现在已通过角色名称用法明确)。最后放置点以表明角色名称应实现为 owned 属性。依赖关系更像是一个可选的东西,比如 "also look here"。它只是有助于导航到正确的位置,但您不会为其创建任何 属性。
在 UML class 图中,关联是比依赖关系更强的关系,
关联和依赖可以实现如下:
关联 --> A 有一个 B 对象(作为成员变量)
public class A {
private B b;
A(B b){
this.b= b;
}
public void myMethod() {
b.callMethod();
}
}
依赖 --> A 引用 B(作为方法参数或 return 类型)
public class A {
public void myMethod(B b) {
b.callMethod();
}
}
在上面的示例中调用 b.callMethod()
可以使用关联或依赖来实现
我想知道何时使用其中一种方法:
- 一个对象将另一个对象作为字段(关联)
- 对象接受另一个对象作为方法参数(依赖)???
p.s - 任何例子都非常受欢迎:)
让我们看一下打印机的例子:
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
}
}
关联(打印机有...)(aggregation/composition): 1)纸 2) 油墨
依赖性: 1) PDF文件(Pdf文件不是打印机的一部分,打印机只是用它...)
总结:如果对象A应该有对象B作为其内部的一部分,这就是关联。如果对象 A 只使用对象 B,而对象 B 不是对象 A 的一部分,则它是依赖关系。
你只为你打算在任何一个连接的 class 中引入一个拥有的 属性 的协会建模。如果不是这种情况,并且您只在参数中引用另一个 class,那么您将使用依赖项。在建模过程中,您通常从一个简单的关联或一个特别的依赖关系开始。这是因为你感受到了两者之间的约束力。一个普通的(最终定向的)关联是 属性 的第一个迹象。在稍后的设计阶段,您将命名角色并添加多重性(因此删除方向箭头,因为方向现在已通过角色名称用法明确)。最后放置点以表明角色名称应实现为 owned 属性。依赖关系更像是一个可选的东西,比如 "also look here"。它只是有助于导航到正确的位置,但您不会为其创建任何 属性。