0

2つのコードブロックがあります

1

Class Employee
{
Address address;
Employee()
{
address=new Address();
}

}

2

Class Employee
    {
    Address address;
    Employee(Address address)
    {
    this.address=address;
    }
}

次に、2番目のブロックが緩く結合され、1番目が密に結合されているのはなぜですか。また、1番目が2番目に比べてsaのテストと保守が難しいのはなぜですか。

4

1 に答える 1

0

AddressEmployeeクラスは新しいインスタンスを直接作成するため、最初のブロックは密結合と見なされます。2つ目は、インスタンスがクラスAddress外のどこかに作成されるため、疎結合と見なされます。EmployeeRonUがコメントしたように、緩い結合を使用する1つの例は、テスト目的でのモックオブジェクトの使用を容易にすることです。

Address mockAddress = mock(Address.class);

Employee test = new Employee(mockAddress);
于 2013-01-17T18:06:07.473 に答える