php 依賴注入的實現


當A類需要依賴於B類,也就是說需要在A類中實例化B類的對象來使用時候,如果B類中的功能發生改變,也會導致A類中使用B類的地方也要跟着修改,導致A類與B類高耦合。這個時候解決方式是,A類應該去依賴B類的接口,把具體的類的實例化交給外部。

<?php
 
/**
 * 為了約束我們先定義一個消息接口
 * Interface Message
 */
interface  Message{
 
  public function seed();
}
 
/**
 * 有一個發送郵件的類
 * Class SeedEmail
 */
class SeedEmail implements Message
{
 
    public function seed()
    {
 
        return  'seed email';
 
        // TODO: Implement seed() method.
    }
 
}
 
/** 
 *新增一個發送短信的類
 * Class SeedSMS
 */
class SeedSMS implements Message
{
    public function seed()
    {
        return 'seed sms';
        // TODO: Implement seed() method.
    }
 
 
}
/*
 * 訂單產生的時候 需要發送消息
 */
class Order{
 
    protected $messager = '';
 
    function __construct(Message $message)
    {
        $this->messager = $message;
 
    }
    public function seed_msg()
    {
        return $this->messager->seed();
    }
}
//我們需要發送郵件的時候
$message = new SeedEmail();
//將郵件發送對象作為參數傳遞給Order
$Order = new Order($message);
$Order->seed_msg();
 
 
//我們需要發送短信的時候
$message = new SeedSMS();
$Order = new Order($message);
$Order->seed_msg();

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM