上代码
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();
}
}