【设计模式】之 Bridge 桥梁模式
2012-03-05 09:36
309 查看
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Collections; namespace DesignFactory.Bridge { /// <summary> /// 桥梁模式 /// </summary> class BridgePattern { } abstract class DataObject { abstract public void NextRecord(); abstract public void PriorRecord(); abstract public void NewRecord(string name); abstract public void DeleteRecord(string name); abstract public void ShowRecord(); abstract public void ShowAllRecord(); } class BusinessObject { protected string group; public BusinessObject(string group) { this.group = group; } private DataObject dataObject; public DataObject DataObject { get { return dataObject; } set { dataObject = value; } } virtual public void Next() { dataObject.NextRecord(); } virtual public void Prior() { dataObject.PriorRecord(); } virtual public void New(string name) { dataObject.NewRecord(name); } virtual public void Delete(string name) { dataObject.DeleteRecord(name); } virtual public void Show() { dataObject.ShowRecord(); } virtual public void ShowAll() { Console.WriteLine("Customer Group:{0}", group); dataObject.ShowAllRecord(); } } class CustomersBusinessObject : BusinessObject { public CustomersBusinessObject(string group) : base(group) { } public override void ShowAll() { Console.WriteLine(); Console.WriteLine("-----------------"); base.ShowAll(); Console.WriteLine("------------------"); } } class CustomersDataObject : DataObject { private ArrayList customers = new ArrayList(); private int current = 0; public CustomersDataObject() { customers.Add("Jim Jones"); customers.Add("Samual Jackson"); customers.Add("Allen Good"); customers.Add("Ann Stills"); customers.Add("Lisa Giolani"); } public override void NextRecord() { if (current <= customers.Count - 1) { current++; } } public override void PriorRecord() { if (current > 0) { current--; } } public override void NewRecord(string name) { customers.Add(name); } public override void DeleteRecord(string name) { customers.Remove(name); } public override void ShowRecord() { Console.WriteLine(customers[current]); } public override void ShowAllRecord() { foreach (string name in customers) { Console.WriteLine(" " + name); } } } public class BusinessApp { public static void Main(string[] args) { CustomersBusinessObject customers = new CustomersBusinessObject("Chicago"); customers.DataObject = new CustomersDataObject(); customers.Show(); customers.Next(); customers.Show(); customers.Next(); customers.Show(); customers.New("Henry Velasquez"); customers.ShowAll(); } } }
相关文章推荐
- 设计模式C++学习笔记之十一(Bridge桥梁模式)
- 设计模式C++学习笔记之十一(Bridge桥梁模式)
- 设计模式之桥梁(Bridge)模式
- 设计模式-结构模式之桥梁模式Bridge
- 设计模式C++学习笔记之十一(Bridge桥梁模式)
- 设计模式11 - 桥梁模式【Bridge Pattern】
- 设计模式C++学习笔记之二(Bridge桥梁模式)
- 学习php设计模式 php实现桥梁模式(bridge)
- 设计模式C++学习笔记之十一(Bridge桥梁模式)
- 设计模式C++学习笔记之十一(Bridge桥梁模式)
- java设计模式(8):桥梁模式(Bridge)
- 大家都来设计模式---桥梁(Bridge)模式
- 设计模式 - Bridge模式(桥梁模式)
- 设计模式之Bridge模式(中文:桥梁模式)
- 设计模式C++学习笔记之十一(Bridge桥梁模式)
- C++设计模式之十二--Bridge桥梁模式
- 设计模式C++之十一(Bridge桥梁模式)
- 您的设计模式——桥梁模式【Bridge Pattern】
- Java设计模式--桥梁模式【Bridge Pattern】
- 学习php设计模式 php实现桥梁模式(bridge)