桥模式:将某个问题抽象的不同形式分别与该问题的具体实现部分相分离,使他们都可以独立变化,并能够动态结合。多用聚合而不是继承,防止子类的爆炸
public interface Drawtool {
public void draw();
}
package com.brigepattern;
public class Drawtool1 implements Drawtool{
@Override
public void draw() {
// TODO Auto-generated method stub
System.out.println("这是使用工具1");
}
}
package com.brigepattern;
public class Drawtool2 implements Drawtool{
@Override
public void draw() {
// TODO Auto-generated method stub
System.out.println("这是使用工具2");
}
}
package com.brigepattern;
public interface Shape {
public void doDraw(Drawtool dt);
}
package com.brigepattern;
public class Square implements Shape{
public void doDraw(Drawtool dt) {
// TODO Auto-generated method stub
dt.draw();
}
}
package com.brigepattern;
public class Circle implements Shape{
@Override
public void doDraw(Drawtool dt) {
// TODO Auto-generated method stub
dt.draw();
}
}
package com.brigepattern;
public class Test {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Shape square = new Square();
Shape circle = new Circle();
square.doDraw(new Drawtool1());
square.doDraw(new Drawtool2());
circle.doDraw(new Drawtool1());
circle.doDraw(new Drawtool2());
}
}