java 桥接模式示例
时间: 2023-08-31 07:12:43 浏览: 96
桥接模式是一种结构型设计模式,它可以将抽象部分与实现部分分离,使它们可以独立地变化。在桥接模式中,抽象部分和实现部分之间通过一个桥接接口相互连接。
下面是一个简单的 Java 桥接模式示例:
首先,我们需要定义一个实现接口(Implementor):
```java
public interface Implementor {
void operationImpl();
}
```
然后,我们需要定义一个抽象类(Abstraction),它包含一个实现接口的引用:
```java
public abstract class Abstraction {
protected Implementor impl;
public Abstraction(Implementor impl) {
this.impl = impl;
}
public abstract void operation();
}
```
接下来,我们需要定义具体的实现类(ConcreteImplementorA 和 ConcreteImplementorB):
```java
public class ConcreteImplementorA implements Implementor {
@Override
public void operationImpl() {
System.out.println("ConcreteImplementorA.operationImpl() called.");
}
}
public class ConcreteImplementorB implements Implementor {
@Override
public void operationImpl() {
System.out.println("ConcreteImplementorB.operationImpl() called.");
}
}
```
最后,我们定义一个具体的抽象类(RefinedAbstraction),它通过实现抽象类中的 operation() 方法来调用实现接口中的 operationImpl() 方法:
```java
public class RefinedAbstraction extends Abstraction {
public RefinedAbstraction(Implementor impl) {
super(impl);
}
@Override
public void operation() {
System.out.println("RefinedAbstraction.operation() called.");
impl.operationImpl();
}
}
```
现在我们可以使用桥接模式来创建一个 RefineAbstraction 对象,并将其连接到 ConcreteImplementorA 或 ConcreteImplementorB 对象:
```java
public static void main(String[] args) {
Implementor implA = new ConcreteImplementorA();
Implementor implB = new ConcreteImplementorB();
Abstraction absA = new RefinedAbstraction(implA);
Abstraction absB = new RefinedAbstraction(implB);
absA.operation();
absB.operation();
}
```
输出结果为:
```
RefinedAbstraction.operation() called.
ConcreteImplementorA.operationImpl() called.
RefinedAbstraction.operation() called.
ConcreteImplementorB.operationImpl() called.
```
这就是一个简单的 Java 桥接模式示例。
阅读全文