桥模式:将某个问题抽象的不同形式分别与该问题的具体实现部分相分离,使他们都可以独立变化,并能够动态结合。
看下代码
创建电视机
Java代码
- public
abstract class Television { -
//电视厂商 -
protected TelevisionMaker televisionMaker; -
//收看电视 -
abstract public void teleview(TelevisionMaker televisionMaker); - }
接下来创建生产厂商
Java代码
- public
abstract class TelevisionMaker { -
abstract public void produce(); - }
电视机的型号,即继承电视机类
Java代码
- public
class Inch21 extends Television{ -
-
public void teleview(TelevisionMaker televisionMaker) { -
System.out.println("21寸电视"); -
} -
- }
Java代码
- public
class Inch29 extends Television{ -
-
public void teleview(TelevisionMaker televisionMaker) { -
System.out.println("29寸电视"); -
} -
- }
下面是不同厂商,即继承生产厂商
Java代码
- public
class ChangHong extends TelevisionMaker{ -
-
public ChangHong(){ -
System.out.println("长虹厂商"); -
} -
-
public void produce() { -
System.out.println("长虹厂商"); -
} - }
- public
class Haier extends TelevisionMaker{ -
public Haier(){ -
System.out.println("海尔厂商"); -
} -
-
public void produce() { -
System.out.println("海尔厂商"); -
} -
- }
这样就使用了桥模式,将原本繁杂的系统分离开来。如果根据需求变动,要增加电视机生产型号或者电视机生产厂商,只需要实现相对应的抽象类即可。
这样,我们也可以根据用户的需要,得到他所需要的电视机,如长虹厂商出厂的29寸电视机。
测试代码如下:
Java代码
- public
class Client { -
-
public static void main(String[] args) { -
// TODO Auto-generated method stub -
Inch29 i = new Inch29(); -
i.teleview(new ChangHong()); -
} - }
转自:点击打开链接