본문 바로가기
반응형

하얀해킹87

[소프트웨어 분석 및 설계] L24. Template Method Pattern, Visitor Pattern Template Method Pattern템플릿 메소드 패턴이란?알고리즘의 구조 (뼈대)를 정의하고 일부 단계를 서브 클래스에서 구체적으로 구현할 수 있게 하는 행동 패턴여러 클래스에서 공통으로 사용하는 메소드를 템플릿화하여 상위 클래스에 정의, 서브 클래스마다 세부 동작을 다르게 구현알고리즘의 구조를 유지한 채로 행동을 다르게 변경할 수 있음템플릿 메소드 패턴이 필요한 상황회사 문서들을 분석하는 앱을 만들고 있다고 가정다양한 포맷 (pdf, doc, csv) 문서에 대해 일관된 형식으로 의미 있는 데이터 추출포맷에 맞게 처리 하는 부분 외에 많은 코드 중복이 발생템플릿 메소드 패턴의 아이디어알고리즘을 일련의 단계들로 나누고 이러한 단계를 메소드로 변환단일 템플릿 메소드 내부에 단계 메소드들에 대한 일련.. 2024. 12. 13.
[소프트웨어 분석 및 설계] 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.
반응형