物件組成

物件組成係物件導向編程上嘅一個概念，廣義上係泛指將啲物件或者資料類型砌埋一齊組成更加複雜嘅物件。

基礎

舉例說明，想像家陣有個人想編寫一個資訊系統程式，用嚟記住一間企業啲員工嘅個人資料，佢個程式可能會一段好似以下噉嘅 Python 碼：
class Employee:
    def __init__(self, id, name):
        self.id = id
        self.name = name
        self.address = None
上述段碼做嘅係定義 Employee呢個類別，個類別由幾個特性、方法同物件組成，當中 address 可以係一件物件，又會有 street同 city等嘅組成部份。

物件結合
喺再進階啲嘅應用當中仲有所謂嘅物件結合：物件結合意思係指件複雜物件 com 由多件物件組成，但 com 並唔「擁有」啲組成部份－當 com 俾人剷走嗰陣，如果用嘅係物件組成，組成 com 啲物件都會跟住被剷走，但喺物件結合之下，啲組成部份並唔隸屬於 com，就算 com 俾人剷走，啲組成部份仲可以繼續噉存在。事實係有好多行 OOP 嘅程式語言都有陳述式專門做物件結合，例如想像一間大學又想整資訊系統記住啲員工嘅個資，可能會寫好似以下噉嘅 C++ 碼：
class Professor;  // Professor呢個類別喺個程式嘅第度定義咗，為咗慳篇幅呢度唔詳講。

class Department { // 定義 Department呢個類別...
  public:
    Department(const std::string& title): title_(title) {}

private: // 物件結合：Professor 組成 Department 呢個類別，不過就算一個部門執咗，大學可能仲會想留住班教授同佢哋啲個資，調佢哋去第個部門。
    std::vector<std::weak_ptr<Professor>> members_;
    const std::string title_;
};

物件導向編程

參攷

物件導向編程