程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> c#橋接模式(bridge結構模式),

c#橋接模式(bridge結構模式),

編輯:C#入門知識

c#橋接模式(bridge結構模式),


橋接模式(bridge結構模式)c#簡單例子

在前面的玩家中每增加一個行為,就必須在每個玩家中都增加,通過橋接模式將行為提取出來了,減少變化

? 1 2 3 4 5 6 7 8 9 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 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms;   namespace adapterpattern {     public partial class bridge : Form     {         public bridge()         {             InitializeComponent();         }           private void btnDisplay_Click(object sender, EventArgs e)         {             play p1 = new play1();             p1.setPlayAction(new move());             p1.run();             this.listBox1.Items.Add(p1.playstring);             play p2 = new play2();             p2.setPlayAction(new jump());             p2.run();             this.listBox1.Items.Add(p2.playstring);         }     }     //意圖(Intent)將抽象部分與實現部分分離,使它們都可以獨立地變化。     public abstract class play//抽象部分     {         public string playstring { get; set; }         protected playAction pa;         public void setPlayAction(playAction pa)//使用組合         {             this.pa = pa;         }         public abstract void action();//抽象部分變化         public void run()         {             pa.action();//執行實現部分             action();         }     }     public class play1 : play     {         public override void action()         {             playstring = "play1" + pa.actionstring;         }     }     public class play2 : play     {         public override void action()         {             playstring = "play2" + pa.actionstring;           }     }     public abstract class playAction//對實現部分進行抽象     {         public string actionstring;         public abstract void action();     }     public class move : playAction//實現玩家移動行為     {         public override void action()         {             actionstring = "move";         }     }     public class jump : playAction//實現玩家跳躍行為     {         public override void action()         {             actionstring = "jump";         }     } }

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved