6 Bridge模式
6.1 概述
Bridage模式就是把抽象部分和它的实现部分分离开来,让两者可独立变化。这里的抽象部分指的是一个概念层次上的东西,它的实现部分指的是实现这个东西的(功能)部分,分离就把实现部分从它要实现的抽象部分独立出来,自我封装成对象。
6.2 设计
思路简单理解就是:在类中抽离方法形成另一个类。比如对于动物狗,有行走功能。一般我们设计时,把狗设计成一个类,里面有方法“行走”。那么Bridge模式就是把“行走”方法从“狗”类中抽离出来,形成“行走”类,并在“狗”类中使用这个“行走”对象,实现行走功能。这样,“狗”类和“行走”类都可以独立变化。
6.3 实现
UML图:
示例代码为:
1using System;
2
3namespace Example
4{
5 /**//// <summary>
6 /// 示例
7 /// </summary>
8 class Example
9 {
10 /**//// <summary>
11 /// 应用程序的主入口点。
12 /// </summary>
13 [STAThread]
14 static void Main(string[] args)
15 {
16 Run r = new Run() ;//狗跑
17 Dog a = new Dog( r ) ;
18 Console.Write( “Dog can “ ) ;
19 a.Move() ;
20
21 Fly f = new Fly() ;//鸟飞
22 Bird b = new Bird( f ) ;
23 Console.Write( “Bird can “ ) ;
24 b.Move() ;
25 }
26 /**//// <summary>
27 /// 动物(抽象部分)
28 /// </summary>
29 public class Animal
30 {
31 protected Movement move = null ;
32
33 public Animal( Movement m )
34 {
35 move = m ;
36 }
37 public virtual void Move()
38 {
39 move.Move() ;
40 }
41 }
42 /**//// <summary>
43 /// 狗
44 /// </summary>
45 public class Dog : Animal
46 {
47 public Dog( Movement m ) : base( m ) {}
48