10.15每日总结

软件设计                  石家庄铁道大学信息学院

 

实验9:桥接模式

本次实验属于模仿型实验,通过本次实验学生将掌握以下内容:

1、理解桥接模式的动机,掌握该模式的结构;

2、能够利用桥接模式解决实际问题

 

[实验任务一]:两个维度的桥接模式

用桥接模式实现在路上开车这个问题,其中,车可以是car或bus,路可以是水泥路或沥青路。

实验要求:

 

 

package Nine;

public class Client {

 

    public static void main(String[] args) {

        

        //获取折叠式手机(样式 + 品牌)

        Phone phone1 = new FoldedPhone(new XiaoMi());

        phone1.open();

        phone1.call();

        phone1.close();

        System.out.println("---------------");

        UpRightPhone phone2 = new UpRightPhone(new XiaoMi());

        phone2.open();

        phone2.call();

        phone2.close();

    }

}

 

package Nine;

 

public interface Brand {

  void open();

  void close();

  void call();

}

 

package Nine;

 

//折叠式手机类,继承:抽象类Phone

public class FoldedPhone extends Phone{

  //构造器

  public FoldedPhone(Brand brand) {

      super(brand);

  }

 

  @Override

  protected void open() {

      super.open();

      System.out.println("折叠样式手机");

  }

 

  @Override

  protected void close() {

      super.close();

      System.out.println("折叠样式手机");

  }

 

  @Override

  protected void call() {

      super.call();

      System.out.println("折叠样式手机");

  }

}

 

package Nine;

 

public abstract class Phone {

    //组合品牌

    private Brand brand;

 

    //构造器

 

    public Phone(Brand brand) {

        super();

        this.brand = brand;

    }

 

    protected void open(){

        this.brand.open();

    }

    protected void close(){

        this.brand.close();

    }

    protected void call(){

        this.brand.call();

    }

}

 

package Nine;

 

//折叠式手机类,继承:抽象类Phone

public class UpRightPhone extends Phone{

  //构造器

  public UpRightPhone(Brand brand) {

      super(brand);

  }

 

  @Override

  protected void open() {

      super.open();

      System.out.println("直立样式手机");

  }

 

  @Override

  protected void close() {

      super.close();

      System.out.println("直立样式手机");

  }

 

  @Override

  protected void call() {

      super.call();

      System.out.println("直立样式手机");

  }

}

 

package Nine;

 

public class Vivo implements Brand {

 

    @Override

    public void open() {

        System.out.println("Vivo手机开机");

    }

 

    @Override

    public void close() {

        System.out.println("Vivo手机关机");

    }

 

    @Override

    public void call() {

        System.out.println("Vivo手机打电话");

    }

}

 

package Nine;

 

public class XiaoMi implements Brand {

 

    @Override

    public void open() {

        System.out.println("小米手机开机");

    }

 

    @Override

    public void close() {

        System.out.println("小米手机关机");

    }

 

    @Override

    public void call() {

        System.out.println("小米手机打电话");

    }

}

 

 

posted @ 2023-10-15 23:39  听着DJ读童话  阅读(8)  评论(0)    收藏  举报