디자인패턴5 Template 패턴 1.Template 패턴 이란? 전체적인 로직에는 큰 차이가 없지만 일부분만 바뀌는 비스무레한 몇 가지 클래스가 있다고 칩시다. 일부분을 위해서 전체를 새로 작성할 필요는 없지요. Template Method에서는 전반적인 구현은 상위클래스(주로 Abstract로 만듭니다.)에서 담당하고 부분적인 곳의 구체적인 구현은 하위클래스가 담당합니다. 2. 예제 ------------- 템플릿 메쏘드가 있는 Abstract Class --------------- package ch04_TemplateMethod; public abstract class Worker { protected abstract void doit(); public final void work(){ System.out.println("출근").. 2020. 2. 1. Adapter 패턴 1. Adapter 패턴이란 이미 구현되어 있는 코드가 있는데, 둘이 연결 좀 시켜주고 싶을 때가 있죠. 어떤 좋은 메서드가 있는데, 인자로 A라는 형식을 받습니다. 근데, 이미 구현되어 있는 코드에는 B라는 형식으로 구현되어 있습니다. 이럴 때, B를 A의 형식으로 바꿔주면 좋은 메서드를 써먹을 수 있습니다. Adapter 패턴은 어떤 오브젝트를 캐스팅이 불가능한 다른 클래스의 형태로 변환시켜주는 것입니다. 2. 따라하기 // Adapter Class package com.designpattern.adapter; import java.util.Enumeration; import java.util.Iterator; public class IteratorToEnumeration implements Enum.. 2020. 2. 1. Iterator 패턴 1. iterator 패턴이란 개발을 하면서 array나 List, Set, Map과 같은 interface 들을 많이 사용합니다. 이것들의 특징은 어떤 데이터들의 집합체라는 겁니다. 원래 집합체란 게 속에 뭐가 들었냐가 중요하죠. 그래서 집합체들을 다룰 때는 얘들이 가지고 있는 개별 원소에 대해서 이런 저런 작업들을 할 일이 많습니다. iterator를 쓰게 되면, 집합체와 개별 원소들간에 분리시켜 생각할 수가 있습니다. 심지어는 그 집합체가 어떤 클래스의 인스턴스인지 조차 신경쓰지 않아도 됩니다. 2. 예제 // iterator 인터페이스를 만든다. package com.designpattern.iterator; public interface Iterator { boolean hasNext(); Ob.. 2020. 2. 1. Factory 패턴 1. Factory 패턴 이란 아주 중요한 패턴중에 하나 입니다. Factory 패턴은 creational pattern 에 속하는 패턴입니다. Factory 패턴은 객체생성로직 없이 객체를 만들어 내는 패턴입니다.. 인터페이스를 통해 만들어진 객체를 참조 하죠. 쉽게 설명해드리겠습니다. factory 는 한국어로 공장이란 뜻이죠. 즉 객체를 만들어내는 공장 입니다. 객체 선언은 보통 new 객체() 이런식으로 하죠. factory는 내부에서 그런 일을 해줍니다. 즉 factory를 가져다가 쓰는 부분에서는 new 객체()와 같은 식으로 변수를 선언할 필요가 없습니다. Abstract class나 인터페이스에 대해서 다양한 하위 구현체가 있을 경우에 사용하면 좋습니다. 사용법은 Factory.create.. 2020. 2. 1. 디자인패턴 종류별 간단 암기 노트 수많은 디자인 패턴을 다 익히려면 시간이 많이 걸립니다. 혹은 공부한 디자인 패턴을 잊어버리곤 하죠 요점만 딱 암기 하고 있으면 다음에 디자인 패턴을 쓰고 싶을대 그 요점을 기준으로 다시 생각이 나게끔 아래와 같이 정리를 해봤습니다. 하위클래스에게 위임하기 1. Iterator : 순서대로 지정해서 처리하기 2. Adapter : 바꿔서 재이용하기 3. Template Method : 하위 클래스에서 구체적으로 처리하기 4. Factory Method : 하위 클래스에서 인스턴스 만들기 인스턴스 만들기 5. Singleton : 인스턴스를 한 개만 만들기 6. Prototype : 복사해서 인스턴스 만들기 7. Builder : 복잡한 인스턴스 조립하기 8. Abstract Factory : 관련 부품을.. 2020. 1. 30. 이전 1 다음