package com.designepattern.Bridge.v2;
/**
* 桥接模式主要的点就是抽象和实现分离
* 将实现类当做参数传递和当做成员变量有啥区别呢??
*/
public class MainDemo {
public static void main(String[] args) {
Implementation impl=new ImplementationImplA();
BridgeAbstract bridgeImpl=new BridgeImpl(impl);
bridgeImpl.opt2();
}
}
interface Implementation{
void opt1();
}
class ImplementationImplA implements Implementation{
@Override
public void opt1() {
System.out.println("opt1");
}
}
abstract class BridgeAbstract{
Implementation impl;
public BridgeAbstract(Implementation impl){
this.impl=impl;
}
abstract void opt2();
}
class BridgeImpl extends BridgeAbstract{
public BridgeImpl(Implementation impl) {
super(impl);
}
@Override
void opt2() {
System.out.println("opt2调用opt1");
impl.opt1();
}
}