且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

Net设计模式实例之桥接模式( Bridge Pattern)(3)

更新时间:2022-06-15 18:28:19

2、代码

1抽象接口CustomersBase及其具体实现类Customers
class CustomersBase
{
    private DataObject _dataObject;
    protected string group;
    public CustomersBase(string group)
    {
        this.group = group;
    }
    // Property
    public DataObject Data
    {
        set { _dataObject = value; }
        get { return _dataObject; }
    }
    public virtual void Next()
    {
        _dataObject.NextRecord();
    }
    public virtual void Prior()
    {
        _dataObject.PriorRecord();
    }
 
    public virtual void Add(string customer)
    {
        _dataObject.AddRecord(customer);
    }
 
    public virtual void Delete(string customer)
    {
        _dataObject.DeleteRecord(customer);
    }
 
    public virtual void Show()
    {
        _dataObject.ShowRecord();
    }
 
    public virtual void ShowAll()
    {
        Console.WriteLine("Customer Group: " + group);
        _dataObject.ShowAllRecords();
    }
}
 
/// <summary>
/// The 'RefinedAbstraction' class
/// </summary>
class Customers : CustomersBase
{
    // Constructor
    public Customers(string group)
 
        base(group)
    {
    }
    public override void ShowAll()
    {
        // Add separator lines
        Console.WriteLine();
        Console.WriteLine("**************************");
        base.ShowAll();
        Console.WriteLine("**************************");
    }
}
 
2抽象数据对象类DataObject及其具体实现类CustomersData
abstract class DataObject
{
    public abstract void NextRecord();
 
    public abstract void PriorRecord();
 
    public abstract void AddRecord(string name);
 
    public abstract void DeleteRecord(string name);
 
    public abstract void ShowRecord();
 
    public abstract void ShowAllRecords();
 
}
/// <summary>
/// The 'ConcreteImplementor' class
/// </summary>
class CustomersData : DataObject
{
    private List<string> _customers = new List<string>();
    private int _current = 0;
 
    public CustomersData()
    {
        // Loaded from a database
        _customers.Add("James Hao");
        _customers.Add("灵动生活");
        _customers.Add("**");
        _customers.Add("**");
        _customers.Add("**");
    }
 
    public override void NextRecord()
    {
        if (_current <= _customers.Count - 1)
        {
            _current++;
        }
    }
 
    public override void PriorRecord()
    {
        if (_current > 0)
        {
            _current--;
        }
    }
 
    public override void AddRecord(string customer)
    {
        _customers.Add(customer);
    }
    public override void DeleteRecord(string customer)
    {
        _customers.Remove(customer);
    }
    public override void ShowRecord()
    {
        Console.WriteLine(_customers[_current]);
    }
    public override void ShowAllRecords()
    {
        foreach (string customer in _customers)
        {
            Console.WriteLine(" " + customer);
        }
    }
}









本文转自 灵动生活 51CTO博客,原文链接:http://blog.51cto.com/smartlife/265773,如需转载请自行联系原作者