3、设有2个类A和B,请给出3种不同的代码实例,使得A类和B类产生公共耦合,并阐述3个实例耦合的影响范围
时间: 2024-10-14 07:12:06 浏览: 14
在软件工程中,类之间的耦合度表示它们之间相互依赖的关系强度。以下是三个不同代码实例,展示了如何让A类和B类产生公共耦合:
1. **硬编码引用**:
```java
class A {
public void operate(B obj) {
// 使用B类的具体实现
obj.executeSomeMethod();
}
}
class B extends A { // B继承自A
@Override
public void executeSomeMethod() {
// B类的实现
}
}
```
在这个例子中,A类直接依赖于B类的实现细节。如果B类有任何更改(如新增方法或修改现有方法),A类都需要相应更新。影响范围仅限于A类及其所有使用这个方法的地方。
2. **单例模式**:
```java
class Singleton {
private static class InnerClass {
private final B instance;
InnerClass() { instance = new B(); }
}
public static B getInstance() {
return InnerClass.INSTANCE.instance;
}
}
class A {
public void operate() {
B b = Singleton.getInstance();
b.executeSomeMethod();
}
}
```
这里,A类通过Singleton间接访问B类的唯一实例。如果B类的结构发生变化,所有依赖Singleton的类都会受到影响。
3. **接口设计**:
```java
interface CommonInterface {
void doOperation();
}
class A implements CommonInterface {
@Override
public void doOperation() {
B b = new B();
b.executeSomeMethod();
}
}
class B implements CommonInterface {
@Override
public void executeSomeMethod() {
// B类实现
}
}
```
在这种模式下,A类和B类都实现了相同的接口,形成强耦合。如果CommonInterface有任何改动,A和B都需要维护。影响范围包括所有遵循此接口的类。
以上三个实例中,耦合的影响范围从局部到全局,取决于代码组织和设计决策。高耦合可能导致代码维护困难,增加修改成本。因此,良好的设计应该尽量降低类间的耦合度。
阅读全文