码迷,mamicode.com
首页 > 其他好文 > 详细

设计模式11-桥接模式

时间:2016-06-03 06:30:24      阅读:201      评论:0      收藏:0      [点我收藏+]

标签:

桥接模式:将抽象出来的那部分和它的实现(方法、操作)部分分离,使它们可以独立变化。(两者间通过构造函数注入依赖)

技术分享

 

技术分享
 1 namespace DesignModel.桥接模式
 2 {
 3 
 4     /// <summary>
 5     /// 操作抽象类
 6     /// </summary>
 7     abstract class FileOperate
 8     {
 9         public abstract void Operate(string type);
10     }
11 
12     class Export : FileOperate
13     {
14         public override void Operate(string type)
15         {
16             switch (type)//这里可做进一步优化,但不影响说明本模式
17             {
18                 default:
19                     Console.WriteLine("导出" + type);
20                     break;
21             }
22         }
23     }
24 
25     class Convent : FileOperate
26     {
27         public override void Operate(string type) => Console.WriteLine("转换" + type);
28 
29     }
30 
31 
32 
33     abstract class File
34     {
35         protected FileOperate fileOperate { get; set; }
36         public void SetOperate(FileOperate fo) => fileOperate = fo;
37 
38         public abstract void Operate();
39     }
40 
41     class Excel : File
42     {
43         public override void Operate() => fileOperate.Operate(nameof(Excel));
44     }
45 
46     class Text : File
47     {
48         public override void Operate() => fileOperate.Operate(nameof(Text));
49     }
50 
51 }
52 
53   static void 桥接模式()
54         {
55             File f = new Excel();
56             FileOperate fo = new Export();
57             f.SetOperate(fo);//给文件指定操作类型
58             f.Operate();//调用指定的操作
59         }
View Code

使用的代码给人组合模式的的感觉,相同的是这种分而治之的思想,细想不同之处在于:桥接模式将原业务分解之后,部分可以自由变化,再组装起来使用。而组合模式是将相同的部分分解出来,可以组合到其它部分以复用,是树状结构。

 

设计模式11-桥接模式

标签:

原文地址:http://www.cnblogs.com/liurui/p/5554974.html

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