Facade Pattern: 將一些相同屬性的類別重新打包整理成一個新的類別, 方便管理
下面例子Applications和Computers類別包裝成一個新的類別MyFacade,
在預設建構子階段, 初始化兩個成員資料, 分別為Applications和Computers物件實體化,
並提供兩個方法讓使用者呼叫, 可以擇一取出
加入參考Microsoft.VisualBasic
1: using Microsoft.VisualBasic.ApplicationServices;
2: using Microsoft.VisualBasic.Devices;
1: // (1) Applications
2: public class Applications
   3:    {4: private WindowsFormsApplicationBase m_MyApplication;
5: // 預設建構子
6: public Applications()
   7:        {8: m_MyApplication = new WindowsFormsApplicationBase();
   9:        }10: public AssemblyInfo Info
  11:        {  12:            get  13:            {14: AssemblyInfo Info = new AssemblyInfo(System.Reflection.Assembly.GetExecutingAssembly());
15: return Info;
  16:            }  17:        }  18:    }1: // (2) Computers
2: public class Computers
   3:    {4: private ComputerInfo m_computerInfo;
5: // 預設建構子
6: public Computers() { this.m_computerInfo = new ComputerInfo(); }
7: public ComputerInfo Info
   8:        {   9:            get  10:            {11: ComputerInfo cInfo = new ComputerInfo();
12: return cInfo;
  13:            }  14:        }  15:    }1: //-----------------------------------------------------------------------------
2: // (1)+(2)
3: public class MyFacade
   4:    {   5:        Applications m_apps;   6:        Computers m_pc;7: public MyFacade()
   8:        {9: m_apps = new Applications();
10: m_pc = new Computers();
  11:        }12: public Applications Applications { get { return m_apps; } }
13: public Computers Computers{ get{return m_pc;} }
  14:    }-----------------------------------------------------------------------------------------------------------------------------------
1: private void button1_Click(object sender, EventArgs e)
   2: {3: // 原始呼叫
4: Applications apps = new Applications();
   5:     MessageBox.Show(apps.Info.Copyright);6: // Facade Pattern: 將一些相同屬性的類別重新打包整理成一個新的類別, 方便管理
7: // 間接呼叫
8: MyFacade myApp = new MyFacade();
   9:     MessageBox.Show(myApp.Computers.Info.OSFullName);  10:     MessageBox.Show(myApp.Applications.Info.Copyright);  11: }參考資料: Visual C#程式設計實例演練與系統開發2013 許清榮
全站熱搜
        



 
         留言列表
 留言列表
 
 



 

