Strategy Pattern (전략 패턴) 특정 컨텍스트(Context)에서 알고리즘, 전략(Strategy)을 별도로 분리하는 설계 방법 예시 ) 과일 매장의 할인 정책 한 과일 매장은 현재 2가지의 할인 정책을 열고 있다. 매장에 처음으로 들어온 첫 손님을 위한 '첫 손님 할인' 정책 저녁시간대 신선도가 떨어진 과일에 대한 '덜 신선한 과일 할인' 정책 물론 이 2가지 외에 추가적으로 할인 정책이 더 생길 가능성이 있다. public class Calculator { public int calculate(boolean firstGuest. List items) { int sum = 0; for(Item item : items) { if(firstGuest) { sum += (int)(item.get..
Abstract Factory Pattern (추상 팩토리 패턴) 비행기를 조정하고 미사일을 발사해서 적을 미사일로 맞추는 슈팅 게임을 만든다고 가정하자. 게임 플레이를 진행하는 Stage 클래스는 몇 단계인지에 따라 서로 다른 적, 장애물, 보스를 생성해야 한다. 이를 위한 Stage 클래스는 다음과 같다. 이 코드의 문제점은 단계별로 적, 장애물, 보스를 생성하는 규칙이 Stage 클래스에 포함되어 있다는 것이다. 새로운 적 class가 추가되거나, 각 단계의 보스 종류가 바뀔 때, 단계별 적 생성 규칙이 달라질 경우 등에 Stage 클래스를 함께 수정해야하고, 코드또한 복잡해진다. 따라서 Stage 클래스에서 객체생성 책임을 분리한다.**** 이때 사용되는 패턴이 추상 팩토리 패턴이다. Enemy..
Singleton pattern (싱글턴 패턴) 어떤 클래스가 최초 한번만 메모리를 할당하고 (static), 그 메모리에 인스턴스를 만들어 사용하는 디자인 패턴 생성자가 여러번 호출되어도, 실제로 생성되는 객체는 하나이고 최초에 생성한 객체를 반환한다. 즉, 단 하나의 인스턴스를 생성해 사용하는 패턴 이유, 장점 한번의 new로 고정된 메모리 영역의 인스턴스를 사용하기 때문에 메모리 낭비를 방지할 수 있다. 싱글톤으로 만들어진 클래스의 인스턴스는 global이기 때문에 다른 곳에서 데이터를 공유하기 쉽다. DB Connection Pool (DBCP)처럼 공통된 객체를 여러개 생성해 사용해야하는 상황에서 많이 사용. 안드로이드의 경우, 각 액티비티나 클래스 별로 주요 클래스를 일일히 전달하기 번거로우므..
MVC, MVP, MVVM pattern MVC : Model + View + Controller MVP : Model + View + Presenter MVVM : Model + View + ViewModel -> 안드로이드 개발에선 MVP pattern이 가장 많이 사용되고 있는것 같다. 참고링크 : 위에서부터 차례대로 읽어보기 MVC, MVP, MVVM 디자인패턴 이해하기 MVC, MVP, MVVM, MVI MVC, MVP, MVVM 무엇인가? 안드로이드의 MVC, MVP, MVVM 종합 안내서 디자인패턴 MVC, MVP, MVVM 비교 MVC, MVP, MVVM 비교
- Total
- Today
- Yesterday
- git
- webhacking.kr
- Data Structure
- 프로그래머스
- 웹해킹
- 회고
- dfs
- socket
- Java
- graph
- reversing
- 리버싱
- brute-force
- mysql
- Android Studio
- Vo
- javascript
- queue
- sort
- FRAGMENT
- 우아한 테크코스
- OneToMany
- Stack
- JPA
- Algorithm
- 해외여행
- Android
- C
- bfs
- 개발자
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |