일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- python sorted
- 잇츠디모
- 릿코드
- python zip_longest
- 파이썬릿코드풀기
- 상가수익률계산기
- LeetCode
- python priority queue
- 릿코드풀이
- leetcode 풀기
- leetcode풀기
- leetcode풀이
- 파이썬 프로그래머스
- 알고리즘풀이
- 릿코드 풀기
- 파이썬 릿코드
- python 릿코드
- 알고리즘풀기
- 코틀린기초
- 파이썬릿코드
- 릿코드풀기
- python xor
- 파이썬 알고리즘
- 파이썬알고리즘
- python 알고리즘
- python Leetcode
- 파이썬 알고리즘 풀기
- binary search
- 파이썬알고리즘풀기
- 릿코드 파이썬
- Today
- Total
목록시스템 설계 및 디자인/디자인 패턴 (13)
소프트웨어에 대한 모든 것
옵저버 패턴 정의 주로 분산 이벤트 핸들링 시스템을 구현하는 데 사용 발행/구독 모델로 알려져 있음 객체의 상태 변화를 관찰하는 관찰자들(옵저버)의 목록을 객체에 등록하여 상태 변화가 있을 때마다 메서드 등을 통해 객체가 직접 목록의 각 옵저버에게 통지하는 디자인 패턴 어떤 객체의 상태가 변할 때 그와 연관된 객체들에게 알림을 보냄 옵저버 패턴 클래스 다이어그램 옵저버 패턴 활용 날씨(온도, 습도, 압력) 데이터가 있고 날씨 데이터가 변경되면 등록한 영상 출력 기기에 정보를 업데이트 하는 시스템을 디자인 해봅시다. 날씨 데이터는 Subject에 해당하고 영상 출력기기는 옵저버(구독자)에 합니다. WehaterData는 온도, 습도, 압력 데이터를 가지고 있고, observer 리스트에 옵저버들을 관리합니..
프로식 패턴 정의 프로토타입 패턴은 cloing을 통해서 존재하는 오브젝트 기반으로 오브젝트를 생성합니다. 프로토타입 패턴은 객체 생성에 비용, 시간, 리소스가 많이 필요하고 이미 유사한 객체가 있는 경우에 사용됩니다. 따라서 이 패턴은 원본 객채를 새 객체에 복사한 다음 필요에 따라 수정하는 메커니즘을 제공합니다. 프로토타입 패턴 장점 sub-classing을 줄임 객체 생성의 복잡성을 숨김 클라이언트는 어떤 유형의 객체가 될지 알지 못해도 새 객체를 얻을 수 있음 런타임에 객체를 추가하거나 제거할 수 있음 비용이 많이 드는 데이터베이스 작업 후에 특정 객체가 생성된다고 칩시다. 이 작업이 반복 요청이 발생하고 중복적인 객체 생성에 많은 비용이 들어갑니다. 그렇다면 생성된 객체를 캐시하고 다음 요청이 ..
컴포지트 패턴 정의 컴포지트 패턴(합성 패턴)은 하나의 클래스와 복합 클래스를 동일한 구성을 하여 사용하는 방법입니다. 컴포지트 패턴은 디렉토리, 파일과 같은 트리 구조의 재귀적 데이터 구조를 표현하는데 적합한 패턴입니다. 컴포지트 의도는 트리 구조로 작성하여, 전체-부분(whole-part) 관계를 표현하는 것입니다. 컴포지트 패턴 언제 사용 전체-부분 관계를 트리 구조로 표현하고 싶을 경우 전체-부분 관계를 클라이언트에서 부분, 관계 객체를 동일하게 처리하고 싶은 경우 컴포지트 패턴 클래스 다이어그램 Client는 Lean와 Composite를 직접 참조 하지 않고 공통 인터페이스 Componet를 참조 Leaf는 Component 인터페이스를 구현 Composite 클래스는 Component 객체 ..
프록시 패턴 정의 프록시에게 어떤 일을 대신 시키는 것 어떤 객체를 사용할 때 객체를 직접적으로 참조하는 것이 아닌 해당 객체를 대리하는 객체를 통해서 대상 객체에 접근하는 방식. 이는 해당 객체가 메모리에 존재하지 않아도 기본적인 정보를 참조하거나 설정할 수 있고, 실제 객체의 기능이 필요한 시점까지 객체의 생성을 미룰 수 있음 프록시 패턴 장점, 단점 장점 메모리 사용량이 큰 객체가 로딩 전에 프록시를 통해서 참조 가능 로컬에 있지 않고 떨어져 있는 객체 사용 가능 원래 객체의 접근에 대해서 사전처리 작업 가능 단점 객체 생성에 한 단계를 거치므로 빈번한 객체 생성이 필요한 경우 성능 저하 발생 가능 코드 가독성 저하 프록시 패턴 특징 대리자는 실제 서비스와 같은 이름의 메소드를 구현 대리자는 실제 ..
팩토리 메소드 패턴 정의 팩토리 메소드는 가장 널리 사용되는 생성 패턴 중 하나입니다. '공장' 즉 객체를 생산하는 패턴인데 객체를 만들어 내는 부분을 서브 클래스에 위임하는 패턴이라고 할 수 있습니다. 팩토리 메소드는 객체 생성을 처리하며, 팩토리 메소드를 이용하면 객체를 생성하는 작업을 서브클래스에 캡슐화시킬 수 있습니다. 이렇게 하면 슈퍼클래스에 있는 클라이언트 코드와 서브클래스에 있는 객체 생성 코드를 분리시킬 수 있습니다.(by 헤드퍼스트 디자인패턴) 구상(Concrete) 형식의 인스턴스를 만드는 작업을 캡슐화 팩토리 메소드 패턴 클래스 다이어그램 팩토리 메소드 패턴 활용 빌딩 클래스가 있고, 빌딩은 유럽 스타일, 한국 스타일로 지어질 수 있습니다. 빌딩 클래스를 상속 받아서 병원 건물과 대학..