본문 바로가기
반응형

3학년 2학기 학사/소프트웨어 분석 및 설계10

[소프트웨어 분석 및 설계] 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.
[소프트웨어 분석 및 설계] L16. Abstract Factory Pattern, Builder Pattern, Prototype Pattern Abstract Factory Pattern추상 팩토리 패턴이란?연관 있는 여러 객체 (제품) 군 (family) 의 생성을 추상화 한 생성 패턴팩토리 메소드 패턴은 단일 객체 (제품) 의 생성을 추상화 한 것이라면, 추상 팩토리 패턴은 관련이 있는 여러 객체 (제품) 들의 일관된 생성을 추상화한 것연관 있는 제품 군의 예시{Chair, Sofa, CoffeeTable} 에 대해 스타일 별로 각 제품을 일관되게 생성 해야 함추상 팩토리 패턴새로운 스타일의 제품 군이 추가되더라도 기존의 코드를 바꾸지 않고 추가할 수 있어야 함제품 별로 인터페이스를 추상화 하고, 모든 추상 제품에 대한 생성 메소드를 가지는 팩토리로 추상화각 서브 팩토리에서는 스타일에 연관된 제품군이 생성될 수 있도록 생성 메소드를 구현추상.. 2024. 12. 13.
반응형