728x90
반응형

헤드퍼스트 디자인 패턴 13

[소프트웨어 아키텍처] 6. 상태 패턴(State Pattern -java)

상태 패턴 전략 패턴과 상태 패턴을 쌍둥이다?! 전략패턴(Strategy Pattern)을 사용하면 행위(알고리즘)을 캡슐화해서 객체가 행위 자체 변경할 수 있습니다. 상태패턴(State Pattern)을 사용하면 객체의 내부 상태를 캡슐화해서 상태 변경에 따라서 객체의 행동을 바꿀 수 있습니다. 쉽게 이야기 하면, 상태 패턴은 내부 상태를 바꿈으로써 객체가 행동을 바꿀 수 있도록 한다. 다시 말하면 상태에 따라서 행동을 달리해야하는 경우에 사용하는 패턴이다. 상태를 별도의 클래스로 캡슐화한 다음 현재 상태를 나타내는 객체에게 행동을 위임하므로 내부 상태가 바뀔 때 행동이 달라지게 된다. 4강 상태를 제외하고 모든 상태가 같다..! 상태 패턴 구조 Context 해당 클래스에는 여러가지 내부 상태가 들..

[소프트웨어 아키텍처] 3. 커맨드 패턴(Command Pattern-java)

커맨드 패턴 커맨드 패턴을 사용하면 요청 내역을 객체로 캡슐화해서 객체를 서로 다른 요청 내역에 따라 매개변수화할 수 있다. 이러면 요청을 큐에 저장하거나 로그로 기록하거나 작업 취소 기능을 사용할 수 있다. 리시버의 메서드 호출을 캡슐화 한다. 메서드 호출을 캡슐화하면 계산 과정의 부분을 결정화할 수 있기에 계산하는 코드를 호출한 객체는 그 일이 어떤 방법으로 처리되는지 신경 쓸 필요가 없다. 쉽게 이야기하면 다음과 같습니다. Command 를 통해서 리시버의 특정 메서드를 캡슐화 하고, 인보커(호출자)는 리시버에 관계 없이(Command에서 캡슐화했기 때문) Command 객체의 메서드를 호출하면 됩니다. 즉, 커맨드 패턴은 호출을 캡슐화 합니다. 위 내용을 레스토랑의 종업원, 주방장의 예시로 코드를..

[소프트웨어 아키텍처] 4. 옵저버 패턴(Observer Pattern -java)

옵저버 패턴 옵저버 패턴이란 한 객체의 상태가 변화하면 그 객체에 의존하는 다른 객체에게 연락이 가고 자동으로 내용이 갱신되는 방식으로 일대다(one-to-many) 의존성을 정의합니다. 예를들어 정보통신대대라는 객체의 상태가 변화하면 그객체에 의존하는 병사 및 간부들에게 연락이 가고 자동으로 전달사항이 갱신되는 방식이다. 옵저버 패턴은 일련의 객체 사이에서 일대다 관계를 정의 또한, 신문 구독 매커니즘을 이해하고 있으면 옵저버 패턴을 쉽게 이해할 수 있다. 신문사를 주제(subject) 구독자를 옵저버(observer)라고 부른다고 알고 있으면 됩니다.! 주제(subject)가 상태를 저장하고 제어한다…! e.g) 행보관(subject)은 매일 아침7시에 병사들(obsever)에게 아침점호 방식을 알려..

728x90
반응형