Phone.java 桥类
package com.godv.bridge;
//桥接类 与类型繁多的抽象接口桥接
public abstract class Phone {
Brand brand;
public Phone(Brand brand) {
super();
this.brand = brand;
}
public void open() {
if (brand != null) {
brand.open();
}
}
public void close() {
if (brand != null) {
brand.close();
}
}
public void call() {
if (brand != null) {
brand.call();
}
}
}
Brand.java
package com.godv.bridge;
//品牌抽象接口
public interface Brand {
void open();
void close();
void call();
}
HuaWei.java / Oppo.java
package com.godv.bridge;
public class HuaWei implements Brand {
private String name = "HUAWEI";
@Override
public void open() {
// TODO Auto-generated method stub
System.out.println(name + "开机");
}
@Override
public void close() {
// TODO Auto-generated method stub
System.out.println(name + "关机");
}
@Override
public void call() {
// TODO Auto-generated method stub
System.out.println(name + "打电话");
}
}
UpRightPhone.java
package com.godv.bridge;
public class UpRightPhone extends Phone{
public UpRightPhone(Brand brand) {
super(brand);
}
public void open() {
super.open();
System.out.println(" 折叠样式手机 ");
}
public void close() {
super.close();
System.out.println(" 折叠样式手机 ");
}
public void call() {
super.call();
System.out.println(" 折叠样式手机 ");
}
}
Client.java
package com.godv.bridge;
public class Client {
public static void main(String[] args) {
Phone phone = new UpRightPhone(new Oppo());
phone.open();
phone.call();
phone.close();
}
}