構成の設計が委任とどのように異なるかなど、実装に関して何か違いはありますか。たとえば、以下のコードは委譲を行っているように見えます。これは、ユーザーが b を使用せずに構成されたオブジェクト (つまり "a") にアクセスできないためです。したがって、ユーザーはクラス b のインターフェースを呼び出してから、「クラス b」が「クラス a」の適切なインターフェースを呼び出して委任する必要があります。これは理にかなっていますか?
Class A {
friend class B;
private:
A(){}; //dont want user to instantiate this class object since it wont sense without any context. Just like a room with no house.
void PrintStructure(){};
};
Class B{
public:
void PrintStructure(){a.PrintStructure();} //delegate
private:
A a; //composition
};