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

2、代码

1 抽象接口CustomersBase 及其具体实现类Customers <?XML:NAMESPACE PREFIX = O />

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 ShowA<?XML:NAMESPACE PREFIX = ST1 />ll ()

    {

        Console .WriteLine("Customer Group: " + group);

        _dataObject.ShowAll Records();

    }

}

 

/// <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 ShowAll Records();

 

}

/// <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 ShowAll Records()

    {

        foreach (string customer in _customers)

        {

            Console .WriteLine(" " + customer);

        }

    }

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值