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("小米手机打电话");
}
}

浙公网安备 33010602011771号