java设计模式---桥接模式

这里写图片描述

这里写图片描述

上代码
1不使用桥接模式的情况:类非常多且繁琐

public interface Computer {
    void sale();
}

class Desktop implements Computer {
    @Override
    public void sale() {
        System.out.println("销售台式机!");
    }
}

class Laptop implements Computer {
    @Override
    public void sale() {
        System.out.println("销售笔记本!");
    }
}
class Pad implements Computer {
    @Override
    public void sale() {
        System.out.println("销售平板电脑!");
    }
}

class LenovoDesktop extends Desktop {
    @Override
    public void sale() {
        System.out.println("销售联想台式机");
    }
}
class LenovoLaptop extends Laptop {
    @Override
    public void sale() {
        System.out.println("销售联想笔记本");
    }
}
class LenovoPad extends Pad {
    @Override
    public void sale() {
        System.out.println("销售联想平板电脑");
    }
}



class ShenzhouDesktop extends Desktop {
    @Override
    public void sale() {
        System.out.println("销售神舟台式机");
    }
}
class ShenzhouLaptop extends Laptop {
    @Override
    public void sale() {
        System.out.println("销售神舟笔记本");
    }
}
class ShenzhouPad extends Pad {
    @Override
    public void sale() {
        System.out.println("销售神舟平板电脑");
    }
}


class DellDesktop extends Desktop {
    @Override
    public void sale() {
        System.out.println("销售戴尔台式机");
    }
}
class DellLaptop extends Laptop {
    @Override
    public void sale() {
        System.out.println("销售戴尔笔记本");
    }
}
class DellPad extends Pad {
    @Override
    public void sale() {
        System.out.println("销售戴尔平板电脑");
    }
}

2使用桥接模式:

第一维度电脑牌子:

interface Brand {
    void sale();
}

class Dell implements Brand{

    @Override
    public void sale() {
        // TODO Auto-generated method stub
        System.out.print("戴尔电脑");
    }

}

class Lenovo implements Brand{

    @Override
    public void sale() {
        // TODO Auto-generated method stub
        System.out.print("联想电脑");
    }

}

class shenzhou implements Brand{

    @Override
    public void sale() {
        // TODO Auto-generated method stub
        System.out.print("神州电脑");
    }

}

第二维度:电脑类型

class Computer {
    protected Brand brand;

    public Computer(Brand brand) {
        super();
        this.brand = brand;
    }
    public void sale(){
        brand.sale();
    }

}

class Desktop extends Computer{

    public Desktop(Brand brand) {
        super(brand);
        // TODO Auto-generated constructor stub
    }

    @Override
    public void sale() {
        // TODO Auto-generated method stub
        super.sale();
        System.out.print("台式机");
    }

}

class Laptop extends Computer{

    public Laptop(Brand brand) {
        super(brand);
        // TODO Auto-generated constructor stub
    }

    @Override
    public void sale() {
        // TODO Auto-generated method stub
        super.sale();
        System.out.println("笔记本");
    }

}

测试类:

public class JustTest {
    public static void main(String[] args) {
        //销售联想的笔记本电脑
        Computer c=new Laptop(new Lenovo());
        c.sale();
    }
}

这里写图片描述

发布了21 篇原创文章 · 获赞 9 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/coding_man_xie/article/details/49516649
今日推荐