正在使用的适配器模式和简单数据库连接的继承

时间:2012-03-19 08:48:59

标签: php database design-patterns

我在尝试理解当前数据库连接类是如何设计为适配器时遇到了一些问题。它提供了一个connect方法,它将调用父级的connect方法,即PEAR的MDB2

require_once(MDB2....)

class Connection
{
   //new/overloading methods that call parents'methods   
}

对于什么适配器模式的基本定义,我认为Connection是一个,但这让我想知道继承和适配器之间可能存在的差异?

感谢您的任何解释,谢谢。

更新

我无法弄清楚的是,如果我将课程重新设计为

class Connection extends MDB2 //for example
{
    // my new methods
    // along with other overloading methods
}

我的Connection仍被视为适配器吗?

1 个答案:

答案 0 :(得分:0)

  

我无法弄清楚的是,如果我重新设计课程,...我的连接仍被视为适配器?

据我所知,适配器用于允许通常不能一起工作的对象仍具有无缝操作的能力。例如:

class TwoProngOutlet
{
   public function connect($cord)
   {
      // Plug $cord into two prong outlet
   }
}

class ThreeProngOutlet
{ 
   public function connect($cord)
   {
      // Plug $cord into three prong outlet
   }
}

class OutletAdapter
{
   public function getOutlet($cord)
   {
      if($cord->prongs == 2)
      { 
         return new TwoProngOutlet($cord);
      }
      else if($cord->prongs == 3)
      {
         return new ThreeProngOutlet($cord);
      }
   }
}

$adapter = new OutletAdapter;
$cord = new TwoProngCord;

// Adapt outlet to meet cord type
$outlet = $adapter->getOutlet($cord);

// Plug it in without having to know what type of outlet we are using
$outlet->connect($cord);