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

简介:

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.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);
         }
     }
}









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

目录
相关文章
|
30天前
|
设计模式
设计模式之桥接模式
设计模式之桥接模式
|
1月前
|
设计模式 缓存 安全
【设计模式】单例模式:确保类只有一个实例
【设计模式】单例模式:确保类只有一个实例
20 0
|
1月前
|
设计模式 Linux Windows
【设计模式】桥接模式
【设计模式】桥接模式
|
2月前
|
设计模式 Oracle Java
设计模式--- 桥接模式、JDBC 源码剖析(桥接)
设计模式--- 桥接模式、JDBC 源码剖析(桥接)
47 2
|
3月前
|
设计模式 算法 Java
行为型设计模式-策略模式(Strategy Pattern)
行为型设计模式-策略模式(Strategy Pattern)
|
3月前
|
设计模式 算法
设计模式 - 行为型模式_ 访问者模式Visitor Pattern
设计模式 - 行为型模式_ 访问者模式Visitor Pattern
39 1
设计模式 - 行为型模式_ 访问者模式Visitor Pattern
|
3月前
|
设计模式 Java 应用服务中间件
设计模式 -结构型模式_门面模式(外观模式) Facade Pattern 在开源软件中的应用
设计模式 -结构型模式_门面模式(外观模式) Facade Pattern 在开源软件中的应用
30 1
|
3月前
|
设计模式 缓存 安全
设计模式 - 创建型模式_ 单例模式 Singleton Pattern
设计模式 - 创建型模式_ 单例模式 Singleton Pattern
39 0
|
4天前
|
设计模式 存储 Java
Java设计模式:解释一下单例模式(Singleton Pattern)。
`Singleton Pattern`是Java中的创建型设计模式,确保类只有一个实例并提供全局访问点。它通过私有化构造函数,用静态方法返回唯一的实例。类内静态变量存储此实例,对外仅通过静态方法访问。
12 1
|
3月前
|
设计模式 Java 关系型数据库
聊聊Java设计模式-桥接模式
桥接(Bridge)模式是指将抽象部分与实现部分相分离,使它们都可以独立的发生变化。
40 7
聊聊Java设计模式-桥接模式