본문 바로가기
반응형

하얀해킹101

[소프트웨어 분석 및 설계] 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.
[소프트웨어 분석 및 설계] L19. Facade Pattern, Flyweight Pattern, Proxy Pattern Facade Pattern라이브러리(또는 서브시스템)에 대해 사용하기 편하기 간편한 인터페이스를 구성하기 위한 구조 패턴라이브러리의 각 클래스와 메소드의 사용이 복잡하거나 바로 가져다 쓰기에는 어려울 때, 퍼사드 패턴으로 디테일은 내부로 묶고 사용자가 쓰기 쉽게 정리하는 것퍼사드 (facade) 라는 뜻은 건물의 정면이라는 뜻퍼사드 패턴이 내부는 숨기고 외관만 보여주는 것에 비유 (외관만 보고 전체를 이해) 퍼사드 패턴이 필요한 상황라이브러리의 여러 API 를 조합해서 쓰는 상황에서 클라이언트의 코드의 라이브러리 의존성이 높을 때JAVA 로 email 을 보내려는 코드를 작성할 때 클라이언트는 email API 를 복잡하게 조합해야 함public static void main(String[] args) .. 2024. 12. 13.
[소프트웨어 분석 및 설계] L18. Composite Pattern, Decorator Pattern Composite PatternComposite Pattern (복합체 패턴) 이란?전체-부분 관계의 트리 구조로 표현되는 객체들을 단일 객체처럼 취급할 수 있게 해주는 구조 패턴단일 객체와 복합 객체를 동일한 인터페이스를 사용하여 처리하기 위함단일 객체는 Leaf 라고 하고, 단일 객체들의 그룹인 복합 객체는 Composite 이라고 함복합체 패턴이 필요한 상황 예시주문 시스템에서 여러 상품을 담은 상자의 가격을 계산하려고 할 때한 box 에 여러 products 와 좀 더 작은 box 들을 담을 수 있음작은 box 들 역시 여러 products 를 담을 수 있다고 있음상자의 가격을 계산하기 위해서는 내부 제품을 모두 살펴보면서 가격을 합산해야 함트리 전체 순회를 하면서 box 와 product 의 t.. 2024. 12. 13.
반응형