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,如需转载请自行联系原作者

目录
相关文章
|
2月前
|
设计模式 算法 数据库连接
PHP中的设计模式:提高代码的可维护性与扩展性本文旨在探讨PHP中常见的设计模式及其应用,帮助开发者编写出更加灵活、可维护和易于扩展的代码。通过深入浅出的解释和实例演示,我们将了解如何使用设计模式解决实际开发中的问题,并提升代码质量。
在软件开发过程中,设计模式是一套经过验证的解决方案模板,用于处理常见的软件设计问题。PHP作为流行的服务器端脚本语言,也有其特定的设计模式应用。本文将重点介绍几种PHP中常用的设计模式,包括单例模式、工厂模式和策略模式,并通过实际代码示例展示它们的具体用法。同时,我们还将讨论如何在实际项目中合理选择和应用这些设计模式,以提升代码的可维护性和扩展性。
61 4
|
1月前
|
设计模式 SQL 安全
PHP中的设计模式:单例模式的深入探索与实践在PHP开发领域,设计模式是解决常见问题的高效方案集合。它们不是具体的代码,而是一种编码和设计经验的总结。单例模式作为设计模式中的一种,确保了一个类仅有一个实例,并提供一个全局访问点。本文将深入探讨单例模式的基本概念、实现方式及其在PHP中的应用。
单例模式在PHP中的应用广泛,尤其在处理数据库连接、日志记录等场景时,能显著提高资源利用率和执行效率。本文从单例模式的定义出发,详细解释了其在PHP中的不同实现方法,并探讨了使用单例模式的优势与注意事项。通过对示例代码的分析,读者将能够理解如何在PHP项目中有效应用单例模式。
|
2月前
|
设计模式 数据库连接 PHP
PHP中的设计模式:如何提高代码的可维护性与扩展性在软件开发领域,PHP 是一种广泛使用的服务器端脚本语言。随着项目规模的扩大和复杂性的增加,保持代码的可维护性和可扩展性变得越来越重要。本文将探讨 PHP 中的设计模式,并通过实例展示如何应用这些模式来提高代码质量。
设计模式是经过验证的解决软件设计问题的方法。它们不是具体的代码,而是一种编码和设计经验的总结。在PHP开发中,合理地使用设计模式可以显著提高代码的可维护性、复用性和扩展性。本文将介绍几种常见的设计模式,包括单例模式、工厂模式和观察者模式,并通过具体的例子展示如何在PHP项目中应用这些模式。
|
2月前
|
设计模式
设计模式-工厂模式 Factory Pattern(简单工厂、工厂方法、抽象工厂)
这篇文章详细解释了工厂模式,包括简单工厂、工厂方法和抽象工厂三种类型。每种模式都通过代码示例展示了其应用场景和实现方法,并比较了它们之间的差异。简单工厂模式通过一个工厂类来创建各种产品;工厂方法模式通过定义一个创建对象的接口,由子类决定实例化哪个类;抽象工厂模式提供一个创建相关或依赖对象家族的接口,而不需要明确指定具体类。
设计模式-工厂模式 Factory Pattern(简单工厂、工厂方法、抽象工厂)
|
2月前
|
设计模式 SQL 安全
PHP中的设计模式:单例模式的深入探索与实践在PHP的编程实践中,设计模式是解决常见软件设计问题的最佳实践。单例模式作为设计模式中的一种,确保一个类只有一个实例,并提供全局访问点,广泛应用于配置管理、日志记录和测试框架等场景。本文将深入探讨单例模式的原理、实现方式及其在PHP中的应用,帮助开发者更好地理解和运用这一设计模式。
在PHP开发中,单例模式通过确保类仅有一个实例并提供一个全局访问点,有效管理和访问共享资源。本文详细介绍了单例模式的概念、PHP实现方式及应用场景,并通过具体代码示例展示如何在PHP中实现单例模式以及如何在实际项目中正确使用它来优化代码结构和性能。
48 2
|
2月前
|
设计模式 Java
设计模式--适配器模式 Adapter Pattern
这篇文章介绍了适配器模式,包括其基本介绍、工作原理以及类适配器模式、对象适配器模式和接口适配器模式三种实现方式。
|
5月前
|
设计模式 安全 Java
Java中的单例模式是一种设计模式,它保证一个类只有一个实例,并提供一个全局访问点
Java单例模式确保类仅有一个实例,并提供全局访问点。常见实现包括: - 饿汉式:静态初始化,线程安全。 - 懒汉式:延迟初始化,需同步保证线程安全。 - 双重检查锁定:优化懒汉式,减少同步开销。 - 静态内部类:延迟加载,线程安全。 - 枚举:简洁线程安全,不适用于复杂构造。 - 容器实现:如Spring框架,用于依赖注入。选择依据需求,如延迟加载、线程安全和扩展性。
70 10
|
4月前
|
设计模式 缓存 JavaScript
js设计模式实例
【7月更文挑战第2天】JavaScript设计模式包含工厂、单例、建造者、抽象工厂和代理模式等,它们是最佳实践和可重用模板,解决创建、职责分配和通信等问题。例如,工厂模式封装对象创建,单例确保全局唯一实例,建造者模式用于复杂对象构建,抽象工厂创建相关对象集合,而代理模式则控制对象访问。这些模式提升代码质量、可读性和灵活性,是高效开发的关键。
37 0
|
5月前
|
设计模式
设计模式-05建造者模式(Builder Pattern)
设计模式-05建造者模式(Builder Pattern)
|
6月前
|
设计模式 安全 Java
【设计模式】JAVA Design Patterns——Curiously Recurring Template Pattern(奇异递归模板模式)
该文介绍了一种C++的编程技巧——奇异递归模板模式(CRTP),旨在让派生组件能继承基本组件的特定功能。通过示例展示了如何创建一个`Fighter`接口和`MmaFighter`类,其中`MmaFighter`及其子类如`MmaBantamweightFighter`和`MmaHeavyweightFighter`强制类型安全,确保相同重量级的拳手之间才能进行比赛。这种设计避免了不同重量级拳手间的错误匹配,编译时会报错。CRTP适用于处理类型冲突、参数化类方法和限制方法只对相同类型实例生效的情况。
【设计模式】JAVA Design Patterns——Curiously Recurring Template Pattern(奇异递归模板模式)
下一篇
无影云桌面