본문 바로가기
반응형

하얀해킹87

[소프트웨어 분석 및 설계] 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.
[소프트웨어 분석 및 설계] L17. Adapter Pattern, Bridge Pattern Adapter Pattern어댑터 패턴이란?호환성이 없는 인터페이스 때문에 함께 동작할 수 없는 클래스들을 어댑터를 통해 함께 작동할 수 있도록 변환해주는 구조 패턴이미 구축되어 있는 것을 새로운 어떤 것에 사용하려고 할 때 양 쪽 간의 호환성을 유지해주기 위해 사용어댑터 패턴이 필요한 상황 예시주식 시장 모니터링 앱을 만드는데 여러 소스에서 주식 데이터를 XML 형식으로 다운로드 해서 보여준다고 가정어느 시점에 타사의 스마트 분석 라이브러리를 통합하여 개선하려고 했는데 이 라이브러리가 JSON 형식으로 입력을 받음이런 경우 XML 에서 JSON 으로 포맷을 변경해주는 어댑터를 만들어주면 서로 연동 가능해짐어댑터를 통해서만 분석 라이브러리와 통신하도록 함어댑터 패턴의 구조 (객체 어댑터 구조)어댑터 패턴.. 2024. 12. 13.
반응형