利用桥接模式将系统的抽象部分和实现部分进行解耦;将不同维度的属性抽象化,保证分离到最细都只负责单一属性。使用组合替代继承进行,使抽象接口能够调用具体对象的部分功能(将类作为参数,设置set方法)
第一步:功能一接口
public interface Food {
void eat();
}//食物有一个被吃的方法
第二步:创建功能一实现类
public class Food1 implements Food{
@Override
public void eat() {
System.out.print("吃鸡腿");
}
}
public class Food2 implements Food {
@Override
public void eat() {
System.out.print("吃牛排");
}
}
第三步:创建抽象类,将功能一作为属性、set方法、功能二抽象方法
public abstract class Tool {
protected Food food;
protected void setFood(Food food) {
this.food = food; //用参数设置功能一对象属性
}
public abstract void start();
}
第四步:创建功能二实现类,这里将父类属性作为对象调用功能一方法
public class Tool1 extends Tool {
@Override
public void start() {
System.out.println("用叉子");
food.eat(); //调用功能一
}
}
public class Tool2 extends Tool{
@Override
public void start() {
System.out.println("用筷子");
food.eat(); //调用功能一
}
}
第五步:main测试
public static void main(String[] args) {
Tool tool=new Tool1();
Food food=new Food1();
tool.setFood(food);
tool.start();
}