java设计模式---桥接模式
2015-10-30 21:05
369 查看
上代码
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(); } }
相关文章推荐
- 从赵本山的小品联想到的Java设计模式
- JAVA设计模式学习第三天 设计模式之Chain of Responsibility——项目篇
- 学习:java设计模式—工厂模式
- 设计模式----简单工厂模式
- Java设计模式 创建模式-工厂模式(Factory)
- Java设计模式 创建模式-原型模式(Prototype)
- Java设计模式 创建模式-生成器模式(Builder)
- Java设计模式 创建模式-单态模式(Singleton)
- Java设计模式 结构模式-适配器模式(Adapter)
- 《Java设计模式》七大原则
- 设计模式-创建型:单例模式(1)
- java设计模式(二):2.1责任链(简单一条链)
- java 设计模式有趣见解
- 黑马程序员————java设计模式之单例模式一
- Java 观察者模式
- 利用Happen-Before规则分析DCL
- java设计模式之抽象工厂模式
- 抽象工厂模式浅谈
- 生成器模式浅谈
- 简单工厂模式浅谈