[디자인 패턴] 복합체 패턴
복합체 패턴(Composite Pattern) 복합체 패턴은 객체 간의 계층적 구조화를 통해 객체를 확장하는 패턴입니다. 계층적 구조는 재귀(Recursive)와 트리(Tree) 구조를 생각하면 좋습니다. 일반적인 복합 객체로부터 복합체 패턴으로 확장해보겠습니다. 복합 객체 복합 객체는 한 객체가 다른 객체를 포함하고 있는 관계를 의미합니다. 대표적인 복합 객체로 컴퓨터가 있습니다. 컴퓨터는 다양한 객체(모니터, 메모리, 저장장치 등)를 포함하고 있습니다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 class Computer { public: void setMonitor(std::shared_ptr<Monitor> monitor) { m_monitor = monitor; } void setDisk(std::shared_ptr<Disk> disk) { m_disk = disk; } void setMemory(std::shared_ptr<Memory> memory) { m_memory = memory; } std::shared_ptr<Monitor> m_monitor; std::shared_ptr<Disk> m_disk; std::shared_ptr<Memory> m_memory; std::string m_name = "Computer Composite"; }; Computer는 Monitor, Disk, Memory를 포함하고 있는 복합 객체입니다....