본문 바로가기
반응형

Development, Architecture/Design Pattern14

[디자인 패턴] Adapter Pattern 어댑터 패턴 Adapter Pattern Introduction 한국인 김씨는 길을 걷던 도중, 한국을 여행 중인 일본인 고쿠과 마주쳤습니다. 일본인 고쿠는 김씨에게 길을 물어보고, 김씨는 번역기를 사용해 소통을 하고자 합니다. Definition 어댑터 패턴은 한 클래스의 인터페이스를 클라이언트에서 사용하고자 하는 다른 인터페이스로 변환합니다. 어댑터를 이용하면 인터페이스 호환성 문제 때문에 같이 쓸 수 없는 클래스들을 연결해서 쓸 수 있습니다. Structure 현재 상황에서 한국어 인터페이스가 Target이고 일본어 인터페이스가 Adaptee가 됩니다. Source code 한국어 인터페이스를 만들어줍니다.(Target) package adapter_pattern; public interface Korean {.. 2021. 12. 1.
[디자인 패턴] Command Pattern 커맨드 패턴 Command Pattern Introduction 이씨의 집에는 만능 리모컨이 있습니다. 이 리모컨으로 전등을 키고 끄는 것은 물론, 텔레비젼을 키고 끌 수도 있습니다. 이 만능 리모컨은 차후 발전하여 더 많은 기기에 명령을 내릴 수 있습니다. Definition 명령을 객체로 캡슐화할 수 있으며, 매개변수를 통해 여러가지 다른 요구사항도 집어넣을 수 있습니다. 또한 요청 내역을 큐에 저장하고나 로그를 기록할 수도 있습니다. Structure 주어진 상황에서, 다음과 같이 비유될 수 있습니다. Receiver - 전등, 컴퓨터와 같이 명령을 직접 수행할 수 있는 객체. Invoker - 리모컨(리시버로 하여금 명령을 수행하도록 지시) Client - 리모컨을 조종하는 이씨. Source code 전등 .. 2021. 12. 1.
[디자인 패턴] Singleton Pattern 싱글턴 패턴 Singleton Pattern Definition 싱글턴 패턴은 해당 클래스의 인스턴스가 하나만 만들어지고, 어디서든 그 인스턴스에 접근할 수 있도록 하기 위한 패턴입니다. Source code 기본적인 구조는 아래와 같습니다. package singleton_pattern; public class Singleton { private static Singleton instance; public static Singleton getInstance() { if(instance == null) { instance = new Singleton(); } return instance; } } 하지만 이 경우, 동기화 이슈가 발생할 수 있습니다. 여러 스레드가 동시에 실행되면 인스턴스가 여러개 생성될 가능성이 있습.. 2021. 12. 1.
[디자인 패턴] Factory Pattern 팩토리 패턴 Factory Pattern Introduction 공을 만드는 공장이 있습니다. 클라이언트는 공장에게 원하는 공을 만들어 달라고 부탁합니다. 공장은 최대한 어떤 부탁이던 유연하게 대처할 수 있도록 만들고 싶습니다. Definition 팩토리 메서드 패턴은 객체를 생성하기 위한 인터페이스를 정의하고, 어떤 클래스의 인스턴스를 만들지는 서브클래스에서 결정하게 만듦니다. 추상 팩토리 패턴은 제품을 생성하는 인터페이스를 구성하고, 그 인터페이스를 사용하여 제품이 만들어지도록 하는 패턴입니다. Question 팩토리 메서드 패턴과 추상 팩토리 패턴은 무엇이 다른가? 팩터리 메서드 패턴에서는 구상 클래스에서 객체를 만든다. 즉 구상 클래스에서 인스턴스를 생성함. 반면 추상 팩토리 페턴에서는 추상 팩토리 인터페이스.. 2021. 12. 1.
[디자인 패턴] Decorator Pattern 데코레이터 패턴 Decorator Pattern Introduce 천재 과학자 이씨는 아톰을 만들었습니다. 아톰의 초기 버전은 로봇의 기본 동작만 수행합니다. 앞으로 새로운 버전이 나올 때마다 아톰의 기능은 추가될 수 있습니다. 기능이 반드시 추가만 되는 것은 아니고 특정 기능을 뺄 수도 있습니다. 즉, 여러 기능을 자유롭게 조합시켜 아톰에게 탑재시킬 수 있어야 합니다. 이럴때 데코레이터 패턴이 사용될 수 있습니다. Definition 데코레이터 패턴은 객체에 추가적인 요건을 동적으로 첨가합니다. 쉽게 말해 장식과 같이 하나의 객체에 여러 기능을 꾸며줍니다. 데코레이터는 서브클래스를 만드는 것을 통해서 기능을 유연하게 확장할 수 있는 방법을 제공합니다. Structure Source Code 가장 먼저 컴포넌트 인터페이.. 2021. 12. 1.
[디자인 패턴] Observer Pattern 옵저버 패턴 Observer Pattern Introduce 아이돌스타의 팬들은 아이돌 스타를 팔로우합니다. 팔로우하는 동안은 아이돌 스타의 일거수일투족을 알 수 있습니다. 하지만 언팔로우를 하면 더 이상 일거수일투족을 알지 못하게 됩니다. 이럴때 옵저버 패턴이 사용될 수 있습니다. Definition 옵저버 패턴은 한 객체의 상태가 바뀌면 그 객체에 의존하는 다른 객체들한테 연락이 가고 자동으로 내용이 갱신되는 방식으로, 일대다 의존성을 정의합니다. Structure 주체 객체와 옵저버 객체가 존재합니다. 주체 객체는 리스트에 옵저버 객채를 넣고, 빼고, 알림을 보내는 Subject 인터페이스를 구현합니다. 옵저버 객체는 상태를 업데이트하는 Observer 인터페이스를 구현합니다. Source Code Subjec.. 2021. 12. 1.
반응형