桥梁模式

作者: Stephenwish | 来源:发表于2020-08-03 21:07 被阅读0次
    假设现需要提供3种型号的画笔能画出(三角形,正方形,星形),能够绘制3种不同颜色,如果使用蜡笔,我们需要准备3*3=9支蜡笔,也就是说必须准备9个具体的蜡笔类。
    而如果使用毛笔的话,只需要3种型号的毛笔,外加3个颜料盒,用3+3=6个类就可以实现9支蜡笔的功能

    所以他需要两套抽象

    //第一套
    public interface Color {
        void paint();
    }
    
    public class Green implements Color{
        @Override
        public void paint() {
            System.err.println("green");
        }
    }
    
    public class Blue implements Color{
        @Override
        public void paint() {
            System.err.println("blue");
        }
    }
    
    public class Red implements Color{
        @Override
        public void paint() {
            System.err.println("red");
        }
    }
    
    

    第二套

    public abstract class Pen {
        Color color;
    
    
        /**
         * 每种笔都有自己的实现
         */
        public abstract void operationDraw();
    
    
        /**
         * 设置画笔Color
         */
        public void setImplementor(Color imp) {
            this.color = imp;
        }
    }
    
    
    public class StarPen extends Pen{
        @Override
        public void operationDraw() {
            System.err.println("Star画笔使用颜色"+this.color);
        }
    }
    
    
    public class TrianglePen extends  Pen{
    
        @Override
        public void operationDraw() {
            System.err.println("Triang画笔使用颜色"+this.color);
        }
    }
    

    新增测试类测试

    public class Client {
    
        public static void main(String[] args) {
            Pen starPen = new StarPen();
            starPen.color = new Green();
            starPen.operationDraw();
        }
    }
    

    相关文章

      网友评论

        本文标题:桥梁模式

        本文链接:https://www.haomeiwen.com/subject/ylavrktx.html