//桥接模式
package 桥接模式;
//软件
abstract class Software{//定义实现部分的抽象类
public abstract void Run();//定义抽象方法
}
//游戏软件
class GameSoftware extends Software{//具体实现
public void Run(){
System.out.println("运行手机软件");
}
}
//Mp3软件
class Mp3Software extends Software{//具体实现
public void Run(){
System.out.println("运行Mp3软件");
}
}
//手机
abstract class Phone{//定义抽象部分的抽象类
protected Software s;
/*public Phone(Software s){//可以用构造函数对数据成员进行初始化
this.s=s;
}*/
public void SetSoftware(Software s){//被提炼的抽象
this.s=s;
}
public abstract void Show();//定义抽象方法
}
//Iphone手机
class Iphone4 extends Phone{//被提炼的抽象
public void Show(){
System.out.print("Iphone4手机可以:");
s.Run();
}
}
//Nokia手机
class Nokia extends Phone{//被提炼的抽象
public void Show(){
System.out.print("Nokia手机可以:");
s.Run();
}
}
public class TestClass {
public static void main(String[] args) {
Phone p=new Nokia();
p.SetSoftware(new Mp3Software());
p.Show();
p.SetSoftware(new GameSoftware());
p.Show();
}
}