디자인패턴 (2) 썸네일형 리스트형 상태(State) 패턴 ❓ 사용 이유 특정 객체가 논리적으로 상태를 갖고 그 상태에 따라서 다른 동작을 해야 할 경우 상태를 여러개를 갖고있어 다중 분기처리를 해야하는 경우 🤔 의도 객체의 상태에 따라서 다른 동작을 하도록 한다. 전력패턴과 달리 클라이언트가 해당 전략을 선택하는게 아니라 상태가 내부에서 바뀌도록 함 💻 구현 Context 인터페이스와 State인터페이스를 갖는다. 클라이언트는 Context 인터페이스를 사용하고, Context 구현체는 State 인터페이스에 기능을 위임한다. Context 인터페이스에 changeState를 구현하지 않고 내부안에서 변경 할 수 있도록 한다. State 구현체들은 Context의 State를 해당 동작과 함께 변경하도록 한다. ( Context의 State는 State 구현체.. 방문자(Visitor) 패턴 🎯 의도 연산을 적용할 원소의 클래스를 변경하지 않고도 새로운 연산을 정의 할 수 있습니다. 📜 구현방법 인터페이스 : 방문자(Visitor), 수락자(Acceptor) 방문자(Visitor) : 방문자는 다양한 수락자를 받아들이는 visit 인터페이스를 상속받고, 다형성을 갖도록 합니다. 그리고 각각의 다형성이 있는 함수안에서 기능들을 구현합니다. 요소(Elememt) : 새로운 기능을 추가할 클래스는 accpet 인터페이스를 상속받아 방문자(자기자신을 전달하여)에게 위임합니다. 🖥️ 코드 아래의 해더파일은 방문자와 수락자에 대한 인터페이스를 정의합니다. ComputerPartVisitor는 방문자로 visit 함수를 정의하고 여러 요소들을 방문 할 수 있게 다형성으로 인터페이스를 정의합니다. Comp.. 이전 1 다음