您的位置:首页 > 编程语言 > Java开发

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设计模式