본문 바로가기

Design Pattern4

Adapter(How slf4j works?) 어댑터라는 단어를 들으면 저는 제일 먼저 일명 '돼지코'(110v 변환기)가 떠오릅니다. 외국에 처음 나갔을 때 우리나라와 다르게 생긴 콘센트 모양을 보고 큰 충격에 빠졌고, 심지어 사용하는 전압이 다른 것을 보고 크게 당황했던 기억이 있네요. 다른 친구가 돼지코의 존재를 알려줘서 다행히 가져갔던 전자기기를 무사히 쓰다가 돌아왔답니다. 오늘 다루어볼 네번째 디자인 패턴, 어댑터(Adapter) 패턴은 이러한 상황에서 활용할 수 있는 디자인패턴입니다. * Adapter - 다른 전기나 기계 장치를 서로 연결해서 작동할 수 있도록 만들어 주는 결합 도구 1. Definition The adapter pattern convert the interface of a class into another interfa.. 2022. 5. 7.
Decorator 자바에서 파일 입출력을 구현할 때를 생각해봅시다. 아래와 같은 예제 코드를 많이 찾아볼 수 있습니다(비교를 위해 Reader Type으로 선언하였습니다). try (Reader reader = new BufferedReader(new InputStreamReader(new FileInputStream("file path"), "UTF-8"));) { // read files.. } catch (Exception e) { throw e; } 파일 입출력 기능을 구현할 때 왜 이런식으로 한 객체의 인스턴스를 다른 객체 생성자의 인수로 던지는 방식의 코드를 사용할까요? 이러한 질문에 답을 줄 수 있는 세 번째 디자인 패턴, 데코레이터(Decorator) 패턴에 대해서 알아보고자 합니다. * Decorator?.. 2022. 3. 15.
Observer 소셜 미디어(facebook, twitter)등을 사용해본 경험이 있나요? 팔로우한 사람이 게시글을 등록할 때마다 자동으로 알람이 오는 것은 어떻게 만드는 걸까요? 다른 예시를 들어보자면, Javascript에서 이벤트에 대한 처리는 주로 아래와 같이 구현을 합니다. 어떻게 작동하는 걸까요? window.onload = function() { // do something on load }; 이러한 질문들에 답을 줄 수 있는 디자인 패턴 두 번째, 옵저버(observer) 패턴에 대해서 알아보고자 합니다. * observer ? - a person who watches or notices something - a person who follows events, especially political ones.. 2022. 3. 2.
Strategy 디자인패턴이란? 객체지향 프로그램 개발시 적용할 수 있는 방법론 필수적으로 지켜야하는 룰이 아니라, 수많은 개발자들의 경험과 아이디어가 모여서 집대성된 가이드라인 왜 필요한가? 프로그램을 개발할 때 동작은 되는데 이것이 정답인지 고민한 적이 없으신가요? 굉장히 많은 로직들이 뭉쳐져 있는 클래스를 유지보수하면서 힘드신 적이 없으셨나요? 신입일 때 java의 io 패키지를 다루면서 코드를 왜이렇게 써야하는지 궁금한 적이 없으셨나요? 디자인패턴은 추상화, 캡슐화, 다형성, 상속을 활용하여 확장이 용이한 프로그램을 설계하도록 도와줍니다. 디자인패턴을 배우고나면 io 패키지에 Decorator패턴이 적용되어 있다는 것을 깨닫게 됩니다. 종류? - Creational : 상황에 따른 알맞은 객체를 생성하는 방법 -.. 2022. 2. 17.