html5/css教程

javascript教程

asp教程

php教程

jsp教程

C#/.NET教程

Python教程

网络营销

建站经验

点击排行

桥接模式(Bridge)详解

来源:中文源码网    浏览:489 次    日期:2024-03-28 08:08:19
企业基本每天都有人上班,身为一名在企业上班的上班族来说,上班我们在熟悉不过了;今天我就用企业员工的上班方式跟大家讲讲桥接模式(bridge)的实现.
           在企业里员工的上班方式有很多种,有走路上班的、开车上班的、坐公交上班的。每一种上班方式员工都可能使用到。每个人每天的上班方式都可能不同,对于员工来说每个人都有自己的名字,然而所使用的上班方式也在变化。在软件系统中要适应这两种变化,应该怎样实现才能应对这样的变化呢?设计模式——桥接模式就能很好的解决这样两个或多个维度的变化。
        桥接模式:将抽象部分与实现部分分离,使他们都可以独立变化。——《设计模式》GOF
      别的我们就不说了,还是先来看看代码的实现吧。
[C#] 纯文本查看 复制代码
?
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
abstractclassFullname
   {
       publicabstractvoidName();
   }
 
   classxiaomin : Fullname
   {
       publicoverridevoidName()
       {
           Console.WriteLine("小明");
       }
   }
   classxiaozhang : Fullname
   {
       publicoverridevoidName()
       {
           Console.WriteLine("小张");
       }
 
   }
   classxiaochen : Fullname
   {
       publicoverridevoidName()
       {
           Console.WriteLine("小陈");
       }
   }
 
   abstractclassworkyya
   {
       protectedFullname full;
       publicFullname Full
       {
           set{ full = value; }
       }
       publicabstractvoidwork();
   }
 
   classworkcar : workyya
   {
       publicoverridevoidwork()
       {
           full.Name();
           Console.WriteLine("开车上班");
       }
   }
   classworktransit : workyya
   {
       publicoverridevoidwork()
       {
           full.Name();
           Console.WriteLine("坐公交上班");
       }
   }
   classworkWalk : workyya
   {
       publicoverridevoidwork()
       {
           full.Name();
           Console.WriteLine("走路上班");
       }
   }
客户端的调用
[C#] 纯文本查看 复制代码
?
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
classProgram
   {
       staticvoidMain(string[] args)
       {
           workyya yya =newworkcar();
           yya.Full =newxiaomin();
           yya.work();
           Console.WriteLine("\n");
 
           workyya yya1 =newworkcar();
           yya1.Full =newxiaochen();
           yya1.work();
           Console.WriteLine("\n");
 
           workyya yya2 =newworkWalk();
           yya2.Full =newxiaozhang();
           yya2.work();
           Console.WriteLine("\n");
           Console.Read();
       }
   }

精彩推荐