Head First - Design Patterns 의 템플릿 메소드 패턴 기반으로 작성하였습니다. 자세한 설명은 도서를 참고해주세요. 미디에이터 패턴에 대해서 알아보겠습니다. 미디에이터는 서로 관련된 객체 사이의 복잡한 통신과 제어를 한 곳에 집중해야 할 경우 해당 패턴을 사용하면 됩니다. 예를 들어 자동화 시스템이 주거환경에 구축되었다고 가정합니다. 아침 알람이 울리면 알람시계는 커피 포트에게 커피 만드는 일을 전송합니다. 그리고 주말에는 커피를 안끊여야하고 샤워 예정 시각 15분 전에 잔디밭 스프링클러를 꺼야합니다. 앞으로 이런 자동화 시스템의 조건이 많아지게 될 경우 어떤 객체에 어떤 규칙을 넣어야 할지 결정하기가 어려워질 수 있습니다. 이럴 경우 미디에이터 패턴을 사용하면 됩니다. 미디에이터란?..
Head First - Design Patterns 의 템플릿 메소드 패턴 기반으로 작성하였습니다. 자세한 설명은 도서를 참고해주세요. 인터프리터 패턴에 대해서 간단히 알아보겠습니다. 어떤 언어에 대한 인터프리터를 만들 때는 인터프리터 패턴을 사용하면 되는데요. 간단한 언어를 구현 할 때, 인터프리터 패턴에서는 문법 및 그 구문을 번역하기 위 한 인터프리터를 표현한 것을 클래스 기반으로 정의합니다. 언어에 속하는 각 규칙을 나타내는 클래스는 언어를 표현하게 되는데요. 이 언어를 해석하기 위해서는 interpret() 메소를 호출해야하며, 이 메소드에는 Context(파싱하고 있는 프로그램의 입력 스트림 포함됨)도 전달 되며, 입력된 내용을 확인하고 평가하는 작업도 여기서 동작하게 됩니다. 장점 각 문법 ..
Head First - Design Patterns 의 템플릿 메소드 패턴 기반으로 작성하였습니다. 자세한 설명은 도서를 참고해주세요. 플라이웨이트 패턴이라고 들어보셨나요? 이미 해당 패턴인지 모르고 사용하는 분들도 많을거 같습니다. 이번 시간은 플라이웨이트 패턴에 대해서 알아보겠습니다. 어떤 클래스의 인스턴스 한 개만 가지고 여러 개의 ‘가상 인스턴스’ 를 제공할 때 플라이웨이트 패턴을 사용하면됩니다. 그럼 바로 UML 을 보면서 어떤 패턴인지 감을 잡겠습니다. 예시를 통한 플라이웨이트 알아보기 조경 설계 애플리케이션에서 나무 객체를 추가해야 할 시나리오를 갖고 생각해보겠습니다. 우리는 나무 객체를 랜덤한 x.y 을 받고 객체를 생성할 것입니다. 그렇게 되었을 많은 객체를 생성하게 되면 한달 빠르면 일..
Head First - Design Patterns 의 템플릿 메소드 패턴 기반으로 작성하였습니다. 자세한 설명은 도서를 참고해주세요. 역할 사슬 패턴이라고 들어보셨나요? 역할 사슬은 한 요청을 두 개 이상의 객체에서 처리하고 싶을 때가 있습니다. 개발자의 성향상 if 문을 클래스 내에서 길게 사용하는 것을 지양하는 분이 계시다면 역할 사슬 패턴에 대해서 알아두면 좋을거 같습니다. 역할 사슬 패턴이란? 역할 사슬 패턴은 행위패턴으로 한 요청을 두 개 이상의 객체에서 처리할 때 사용하는 패턴입니다. ◆ 장점 ‣ 요청을 보낸 쪽하고 받는 쪽을 분리 할 수 있습니다. ‣ 사슬의 구조를 몰라도 되고 그 사슬에 들어있는 다른 객체에 대한 레퍼런스를 가질 필요가 없습니다. ‣ 사슬에 들어가는 객체 변경 및 순서 변..
Head First - Design Patterns 의 템플릿 메소드 패턴 기반으로 작성하였습니다. 자세한 설명은 도서를 참고해주세요. 레거시코드를 보다보면 한번쯤은 보셨을 패턴인 빌더 패턴에 대해서 이번 시간 이야기하겠습니다. 빌더패턴이란?? 제품을 여러 단계로 나눠서 만들 수 있도록 제품 생산 단계들을 캡술화하고 싶다면 빌더 패턴을 활용하면 됩니다. ◆ 장점 ‣ 복합 객체가 생성되는 과정을 캡술화 합니다. ‣ 제품의 내부 구조를 클라이언트로부터 보호 할 수 있습니다. ‣ 여러 단계와 다양한 절차를 통해서 객체 생성가능합니다. ◆ 단점 ‣ 팩토리를 사용하는 경우에 비해 객체를 만들기 위해서 클라이언트에 대해 더 많이 알아야합니다. 예제를 통한 빌더패턴을 알아보기 손님마다 휴일 일자와 숙소가 달라지게 됩..
Head First - Design Patterns 의 템플릿 메소드 패턴 기반으로 작성하였습니다. 자세한 설명은 도서를 참고해주세요. 이번 포스트는 브릿지패턴에 대해서 이야기하려고 합니다. 브리지 사전전 정의는 기본적으로 다리 구조물을 뜻합니다. 다리의 역할은 강이나 두 지점을 건널 수 있게 만드는 시설을 의미하는데요. 왜 이름을 브리지 패턴으로 선언하고 브리지 패턴의 장점과 단점을 알아보겠습니다. 브리지 패턴을 왜 사용하는가? 브리지 패턴은 구조(Structural)패턴으로써 클래스 및 객체들읠 구성을 통하여 구현 뿐만 아니라 추상화된 부분까지 변경시켜야하는 경우에는 브리지 패턴을 사용하면됩니다. 예를들어서 만능 리모컨을 만든다고 가정합시다. 조금 더 편한 가정을 위해서 모든 TV의 리모콘은 똑같은 ..
알고리즘을 캡슐화해서, 서브클래스에서 언제든 필요 할때마다 사용할 수 있는 방법을 고민하신다면 디자인 패턴 중 하나인 템플릿 메소드 패턴을 제안드립니다. 이번 포스트는 템플릿 메소드 패턴에 대해서 간단히 알아보겠습니다. * Head First - Design Patterns 의 템플릿 메소드 패턴 기반으로 작성하였습니다. 자세한 설명은 도서를 참고해주세요. 템플릿 메소드 패턴 메소드에서 알고리즘의 골격을 정의합니다. 알고리즈의 여러 단계 중 일부는 서브클래스에서 구현할 수 있습니다. 템플릿 메소드를 이용하면 알고리즘의 구조는그대로 유지하면서 서브클래스에서 특정 단계를 재정의할 수 있습니다. 후크 추상 클래스에서 선언되는 메소드긴 하지만 기본적인 내용만 구현되어 있거나 아무 코드도 들어있지 않은 메소드입니..
* Head First - Design Patterns 의 데코레이터 패턴을 기반으로 작성하였습니다. 자세한 설명은 도서를 참고해주세요. 다양한 디자인패턴이 존재합니다. 디자인패턴은 누군가가 나의 문제를 이미 해결해 놓았고, 이미 경험한 개발자들의 경험이 모여 디자인패턴을 만들어 졌습니다. 디자인 패턴은 코드를 재사용하는 것과 마찬가지로 경험을 재사용하는 것입니다. 데코레이션 패턴을 소개하기 앞써 OCP(Open-Close Principle) 에 대해서 언급하겠습니다. OCP(Open-Closed Principle)는 가장 중요한 디자인 원칙 가운데 하나입니다. "클래스는 확장에 대해서는 열려 있어야 하지만 코드 변경에 대해서는 닫혀 있어야 한다." 데코레이터 패턴 데코레이터 패턴(Decorator Pa..
- RXjava
- 선교
- 탁구
- issue
- 코틀린
- swift
- MCC
- 패턴
- 디자인패턴
- 고시문헬퍼
- DI
- 미션차이나센터
- Kotlin
- 안드로이드
- 고시문
- 스코어헬퍼
- missioon
- Android Studio
- IT
- 점수판
- 임용고시
- missionchina
- flutter
- IOS
- java
- 알고리즘
- Android
- view
- push
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |