桥接模式(Bridge):将抽象部分与它的实现部分分离,使它们都可以独立地变化。
package bridge;
/**
* 桥接模式(Bridge)
* 手机软件抽象类
*/
public abstract class PhoneSoft {
public abstract void run();
}
package bridge;
/**
* 桥接模式(Bridge)
* 手机游戏
*/
public class PhoneGame extends PhoneSoft {
@Override
public void run() {
System.out.println("运行手机游戏");
}
}
package bridge;
/**
* 桥接模式(Bridge)
* 手机通讯录
*/
public class PhoneAddressList extends PhoneSoft {
@Override
public void run() {
System.out.println("运行手机通讯录");
}
}
package bridge;
/**
* 桥接模式(Bridge)
* 手机品牌抽象类
*/
public abstract class PhoneBrand {
protected PhoneSoft soft;
// 设置手机软件
public void setPhoneSoft(PhoneSoft soft) {
this.soft = soft;
}
public abstract void run();
}
package bridge;
/**
* 桥接模式(Bridge)
* 手机品牌M
*/
public class PhoneBrandM extends PhoneBrand {
@Override
public void run() {
soft.run();
}
}
package bridge;
/**
* 桥接模式(Bridge)
* 手机品牌N
*/
public class PhoneBrandN extends PhoneBrand {
@Override
public void run() {
soft.run();
}
}
package bridge;
/**
* 桥接模式(Bridge)
* 客户端main方法
*/
public class Client {
public static void main(String[] args) {
PhoneBrand phoneBrand;
phoneBrand = new PhoneBrandN();
phoneBrand.setPhoneSoft(new PhoneGame());
phoneBrand.run();
phoneBrand.setPhoneSoft(new PhoneAddressList());
phoneBrand.run();
phoneBrand = new PhoneBrandM();
phoneBrand.setPhoneSoft(new PhoneGame());
phoneBrand.run();
phoneBrand.setPhoneSoft(new PhoneAddressList());
phoneBrand.run();
}
}