일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 스택
- 파이썬
- 디자인패턴
- Python
- tcp
- Java
- 백준
- javscript
- 로버트마틴
- 람다 칼큘러스
- 큐
- Pattern
- DesignPattern
- 겨울카카오인턴
- Collection
- JavaScript
- 프로그래머스
- JDBC
- Rails
- Spring
- functional programming
- solid
- exception
- 함수형 프로그래밍
- Eclipse
- 자바
- design-pattern
- Network
- lambda calculus
- Collections
- Today
- Total
목록DesignPattern (5)
개발자 노트
참고자료 https://refactoring.guru/design-patterns/visitor Intent 분류 behavioral design pattern object의 behavior을 캡슐화하고 요청을 object에 위임하는 패턴 정의 object로부터 알고리즘을 분리하는 패턴 Problem 상황 하나의 거대한 그래프로 구성된 지형 정보 앱을 개발하고 있습니다. 노드는 도시 또는 도서관같은 것이 될 수 있습니다. 노드 사이에 도로가 있다면 연결될 수 있습니다. 노드의 클래스는 노드의 유형을 나타내고, 각 특정한 노드는 객체를 나타냅니다. 요구 그래프를 XML format으로 export하라는 요구를 받았습니다. 안 좋은 접근 방법 - 노드에 로직 추가 노드에 XML exporting method..
참고자료 https://refactoring.guru/design-patterns/template-method Intent 분류 behavioral design pattern behavioral class pattern으로, 클래스간 행동(behavioral)을 분산하기 위해 상속을 이용하는 패턴 정의 알고리즘의 뼈대(skeleton)를 super 클래스에 정의하고, subclass는 super클래스의 뼈대를 바꾸지 않은 채 특정한 알고리즘을 나타내는 method를 오버라이딩하는 패턴 Problem 상황 데이터 마이닝 앱을 생각해봅시다. 이 앱은 기업 문서를 분석합니다. 유저가 데이터를 넣어줍니다. 그러면 통일된 형식으로 파싱하고 이를 분석하여 의미있는 데이터를 추출합니다. 문제 input type 추가..
참고 자료 https://refactoring.guru/design-patterns/strategy Intent 분류 behavioral design pattern object의 behavior을 캡슐화하고 요청을 object에 위임하는 패턴 정의 알고리즘의 집합을 정의하고, 각각 개별 클래스로 놓은 뒤 그 객체들을 바꿀 수 있도록 하는 패턴 Problem 상황 네비게이션 앱을 생각해봅시다. 개발 초기에 자연 경관을 볼 수 있는 루트를 알려주는 기능을 만들었습니다. 시간이 흘러 점점 요구사항이 점점 추가됩니다. 도보로 걸을 수 있는 루트를 제공해주는 기능을 추가해주고... 대중교통을 통해 갈 수 있는 루트를 제공해주는 기능을 추가해주고... 심지어 특정 도시를 경유하여 갈 수 있는 루트를 제공해주는 기능..
참고 자료 https://refactoring.guru/design-patterns/observer https://ko.wikipedia.org/wiki/%EC%98%B5%EC%84%9C%EB%B2%84_%ED%8C%A8%ED%84%B4 Intent 분류 behavioral design pattern 그룹 내 object간 어떻게 소통할 지에 대해 관한 패턴 정의 (guru) 여러 객체들이 관찰하고 있는 객체에 발생하는 이벤트를 알리기 위해 subscription 메커니즘을 정의하도록 하는 패턴 (wiki) 객체의 상태 변화를 관찰하는 관찰자들, 즉 옵저버들의 목록을 객체에 등록하여 상태 변화가 있을 때마다 메서드 등을 통해 객체가 직접 목록의 각 옵저버에게 통지하도록 하는 디자인 패턴이다 Problem..
참고 https://refactoring.guru/design-patterns/memento memento: (사람 장소를 기억하기 위한) 기념품 정의 behavioral deisign pattern object의 behavior을 캡슐화하고 요청을 object에 위임하는 패턴 세부 구현을 캡슐화하면서 이전 상태의 object를 저장하거나 복구하는 디자인 패턴 Snapshot Pattern이라고도 불림 상황 - editor program 되돌리기 기능 구현 editor 프로그램이 있다고 생각합시다 이 프로그램은 텍스트 편집 뿐만 아니라 텍스트를 꾸미고, 이미지를 삽입할 수도 있습니다. 문제 어떻게 해야 되돌리기 기능을 구현할 수 있을까요? 되돌리기 기능을 구현하기 위해서... operation을 수행 전..