본문 바로가기
반응형

전체 글99

[소프트웨어 분석 및 설계] L23. Mediator Pattern, Memento Pattern, Observer Pattern Mediator Pattern중재자 (mediator) 패턴이란?객체 간의  직접 통신을 제한하고 중재자 객체를 통해서만 협력하도록 하는 행동 패턴중재자 : 객체 간의 통신을 관리하고 매개체 역할을 함객체 간의 결합을 낮추고 유연성을 확보중재자 패턴이 필요한 상황프로필을 만들고 편집하기 위한 대화상자 (dialog) 에서 다양한 요소들이 상호 작용할 수 있음각 객체들이 서로 필요한 객체들을 참조한 클래스가 수정되면 연관된 클래스들의 수정이 발생할 수 있음중재자 패턴의 아이디어각 객체 간의 연결을 느슨하게 만들어야 함객체 간의 직접적인 통신은 중단하고, 이러한 호출 대신 처리할 수 있는 중재제 객체를 두어서 간접적으로 협력M:N 관계를 M:1 로 전환중재자 패턴의 구조중재자 패턴의 코드 예시public i.. 2024. 12. 13.
[소프트웨어 분석 및 설계] L22. State Pattern, Strategy Pattern State Pattern상태 (state) 패턴이란?객체의 내부 상태가 변경될 때, 객체 스스로가 상태에 따라 행동을 변경할 수 있도록 하는 행동 패턴상태(state) : 객체가 가질 수 있는 어떤 조건이나 상황예) TV 가 켜져 있다면 음량 버튼은 음량을 조절할 수 있지만, 꺼져 있다면 음량은 바뀌지 않음 (티비 전원의 상태에 따라 메소드의 행동이 바뀜)상태 패턴이 필요한 상황Documnet (문서) 클래스가 있고, Draft (초안), Moderation (검토), Published (출판됨) 의 세 가지 상태를 가진다고 하자publish 메소드는 각 상태에 따라 약간씩 다르게 작동Draft 일 때, 문서를 검토 상태로 이동Moderation 일 때, 문서를 공개하거나 관리자에게만 공개Publishe.. 2024. 12. 13.
[소프트웨어 분석 및 설계] L21. Interpreter Pattern, Iterator Pattern Interpreter Pattern해석자 (interpreter) 패턴이란?언어(language) 의 문법 규칙을 표현하고 해당 언어의 해석을 하는데 사용되는 행동 패턴컴파일러 또는 인터프리터를 개발할 때 적용되며 언어의 문법 구조를 나타내는데 유용문법 규칙을 클래스로 표현하고, 이러한 클래스들을 조합하여 언어의 문장을 해석하는 구조를 만듬새로운 언어를 추가하거나 기존 언어의 문법을 변경할 때 유연하게 확장 가능!해석자 패턴을 도입하기 위한 예제 - Postfix expressionInfix notation일반적인 표기법, 사람들이 보기에 익수함연산자 우선순위 때문에 괄호가 필요함 (우선순위 처리 복잡)Postfix notation사람이 보기에 직관적이지 않지만, 수식을 읽으면서 바로 계산이 가능수신에 .. 2024. 12. 13.
[소프트웨어 분석 및 설계] L20. Chain of Responsibility Pattern, Command Pattern Chain of Responsibility Pattern책임 연쇄 패턴 (chain of responsibility) 이란?클라이언트의 요청에 대한 세세한 처리를 한 객체가 전부 하는 것이 아닌, 여러 개의 처리 객체들로 나누고 이들을 사슬(chain) 처럼 연결해 연쇄적으로 처리하는 행동 패턴Handler (핸들러) : 처리 객체를 지칭, 요청 받으면 각 핸들러는 요청을 처리할 수 있는지 판단하고, 없으면 다음 핸들러로 책임을 전가책임 연쇄 패턴이 필요한 상황온라인 주문 시스템을 개발하려고 하는 예시에서,인증된 사용자들만 주문을 생성할 수 있도록 시스템에 대한 접근을 제한관리 권한이 있는 사용자들에게는 모든 주문에 대한 전체 접근 권한을 부여이러한 검사들을 차례대로 수행하도록 구성했다고 가정검사 조건을.. 2024. 12. 13.
반응형