關於 PHP 類關係的一點個人理解

<?php

/**

 * 類之間的關係分爲:

 * 1. 實現:實現類或接口

 * 2. 泛化:即繼承,是is-a的關係,是耦合度最大的一種關係

 * 3. 依賴:對象在運行時會用到另一個對象的關係

 * 4. 關聯:

 *  4.1 一般關聯關係:描述不同類的對象之間的結構關係,是一種靜態關係。屬於“強關聯”關係

 *  4.2 聚合關係:has-a關係,是一種不穩定的包含關係,有整體和部分的關係,如果整體不存在了,部分也可以獨立存在。較強於一般關聯。如學生和班級。

 *  4.3 組合關係:contains-a關係,是一種強烈的包含關係(更強的聚合關係)。組合類負責被組合類的生命週期,整體和部分的關係,部分不能脫離整體存在。如班級和學校

 * 

 * 通過下面的例子來更好的理解上面說的類之間的實現,泛化,依賴關係

 */

 

/**

 * 學生的抽象類,類裏有個學習的抽象方法。

 * 泛化出男學生

 * 學生依賴書本學習

 */

 

/**

 * 定義一個學生的抽象類,類裏有個學習的抽象方法

 */

abstract class Students {

    abstract function study();

}

 

class Books {

    function phpBook(){

        return "PHP";

    }

}

 

/**

 * 定義一個男學生類,實現學生類和類裏的學習方法

 */

class ManStudents extends Students {

    private $books;

 

    function __construct($books){

        $this->books = $books;

    }

 

    function study (){

        echo "我正在學習".$this->books->phpBook();

    }

}

 

$manStudents = new ManStudents(new Books());

$manStudents->study();

?>

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章