码迷,mamicode.com
首页 > 编程语言 > 详细

大话设计模式_桥接模式(Java代码)

时间:2014-06-09 14:04:43      阅读:328      评论:0      收藏:0      [点我收藏+]

标签:c   style   class   blog   code   java   

合成/聚合复用原则:尽量使用合成/聚合,尽量不要使用类继承。

桥接模式:将抽象部分与它的实现部分分离,使它们都可以独立变化。

解释:即一个系统可以有多种分类实现,把没种分类独立出来,让他们可以独自变化,减少他们之间的耦合。

简单描述:1个Abstraction类,持有一个Implementor的引用,其方法中调用此Implementor引用的对应方法

大话设计模式中的截图:

bubuko.com,布布扣

代码例子:

Abstraction类:

bubuko.com,布布扣
 1 package com.longsheng.bridge;
 2 
 3 public class Abstraction {
 4 
 5     protected Implementor mImplementor;
 6     
 7     public void setImplementor(Implementor mImplementor) {
 8         this.mImplementor = mImplementor;
 9     }
10     
11     public void operation() {
12         mImplementor.operation();
13     }
14     
15 }
bubuko.com,布布扣

RefinedAbstraction类:

bubuko.com,布布扣
 1 package com.longsheng.bridge;
 2 
 3 public class RefinedAbstraction extends Abstraction {
 4 
 5     @Override
 6     public void operation() {
 7         super.operation();
 8     }
 9     
10 }
bubuko.com,布布扣

Implementor类:

bubuko.com,布布扣
1 package com.longsheng.bridge;
2 
3 public abstract class Implementor {
4 
5     public abstract void operation();
6     
7 }
bubuko.com,布布扣

ConcreteImplementorA类:

bubuko.com,布布扣
 1 package com.longsheng.bridge;
 2 
 3 public class ConcreteImplementorA extends Implementor {
 4 
 5     @Override
 6     public void operation() {
 7         System.out.println("具体实现A的执行");
 8     }
 9 
10 }
bubuko.com,布布扣

ConcreteImplementorB类:

bubuko.com,布布扣
 1 package com.longsheng.bridge;
 2 
 3 public class ConcreteImplementorB extends Implementor {
 4 
 5     @Override
 6     public void operation() {
 7         System.out.println("具体实现B的执行");
 8     }
 9 
10 }
bubuko.com,布布扣

客户端:

bubuko.com,布布扣
 1 package com.longsheng.bridge;
 2 
 3 public class Client {
 4 
 5     public static void main(String[] args) {
 6         Abstraction mAbstraction = new RefinedAbstraction();
 7         
 8         mAbstraction.setImplementor(new ConcreteImplementorA());
 9         mAbstraction.operation();
10         
11         mAbstraction.setImplementor(new ConcreteImplementorB());
12         mAbstraction.operation();
13     }
14 
15 }
bubuko.com,布布扣

运行结果:

1 具体实现A的执行
2 具体实现B的执行

这个模式的使用场景我还不是很清楚,书中举的例子是手机品牌和手机软件,这两者作为分类,UML图如下所示(具体代码就不写了):

bubuko.com,布布扣

大话设计模式_桥接模式(Java代码),布布扣,bubuko.com

大话设计模式_桥接模式(Java代码)

标签:c   style   class   blog   code   java   

原文地址:http://www.cnblogs.com/creasylai19/p/3776722.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!