1. 程式人生 > >PHP設計模式--介面卡模式

PHP設計模式--介面卡模式

最近開始學習設計模式中第二部分----結構型模式,總共有七種。
 學習的第一種結構型模式是介面卡模式(Adapter),介面卡模式中最簡單,最普遍的舉例就是電源轉接頭
 所以這種模式理解起來不難。
 以家用電壓為例,提供一個介面卡類,把220V的用電轉換成人體所能承受的36V的安全電壓。

 程式碼如下:

<?php    
/**      
 * Created by Sublime.      
 * User: Ryan      
 * Date: 2018/1/19      
 * File:Adapter.php      
 */      
  
/** 電壓介面     
 *  interface Voltage         
 */  
interface Voltage  
{  
    function Display(); // 電壓顯示  
}  
  
/** 家用電壓類   
 *  HomeVoltage        
 */  
Class HomeVoltage implements voltage  
{  
    // 家用電壓一般220V  
    function Display(){  
        echo "220V</br>";  
    }     
}  
  
/** 人體安全電壓   
 *  PersonVoltage       
 */  
Class PersonVoltage  
{     
    // 人體安全電壓一般不超過36V  
    function Display(){  
        $v = rand(1,36);  
        echo $v."V";  
    }     
}  
  
/** 介面卡類  
 *  Adapter      
 */  
Class Adapter implements Voltage  
{  
    private $_person;  
    // __construct 建構函式重新進行轉換  
    function __construct(){  
        $this->_person = new PersonVoltage();  
    }  
    function Display(){  
        $this->_person->Display();  
    }   
}  
<?php  
header("Content-Type:text/html;charset=utf-8");    
//------------------------介面卡模式--index.php ----------------   
require_once "Adapter.php";    
  
// 家用電壓    
$home = new HomeVoltage();   
$home->Display();  
  
echo "*********轉換電壓到人體安全電壓**********</br>";  
// 介面卡 隨機轉換到人體可接受範圍電壓  
$person = new Adapter();  
$person->Display();  
輸出結果:

220V
*********轉換電壓到人體安全電壓**********
16V