Software Engineering

Software Engineering

[디자인패턴] 팩토리 메서드(Factory Method) 패턴

1. 팩토리 메서드 패턴이란? - 객체 생성을 위한 패턴 - 객체 생성에 필요한 과정을 템플릿처럼 정해 놓고 각 과정을 다양하게 구현이 가능 - 객체 생성에 대한 인터페이스와 구현의 분리 - 구체적으로 생성할 클래스를 유연하게 정할 수 있음 팩토리 메서드 패턴은 객체 생성을 Factory 클래스로 캡슐화하여 대신 생성하게 하는 '생성' 디자인 패턴이다. 클라이언트가 직접 new 연산자를 통해 객체를 생성하는 것이 아닌 객체 생성을 도맡는 Factory 클래스를 만들고, 이를 상속하는 서브 Factory 클래스에서 여러 타입의 객체 생성을 책임지는 것이다. 또한 Factory에서 객체 생성시의 전처리 혹은 후처리를 통해 생성 과정을 유연하게 처리 할 수 있다. 위키피디아에 나와 있는 UML 다이어그램으로는..

Software Engineering

[디자인 패턴] 빌더(Builder) 패턴

1. 빌더 패턴이란? 빌더 (Builder) 패턴은 복잡한 구성의 객체를 효과적으로 생성하는 패턴 빌더 패턴의 종류는 2가지 - 생성시 지정해야 할 인자가 많을 때 사용하는 패턴 - 객체 생성 시 여러 단계를 순차적으로 거칠 때, 이 단계의 순서를 결정해 두고 각 단계를 다양하게 구현할 수 있도록 하는 패턴 대부분 빌더 패턴은 첫번째 종류로만 이해하는 경우가 대부분 빌더 패턴외에 객체 생성 패턴은 대표적으로 점층적 생성자 패턴, 자바 빈즈 패턴이 존재 점층적 생성자 패턴 - 생성자를 매개변수에 갯수만큼 구성하는 패턴 자바 빈즈 패턴 - 별도의 생성자를 구성하지 않고 객체를 생성한 후, Setter를 이용하여 객체를 구성하는 형태를 의미 2. 생성시 지정해야 할 인자가 많을 때 사용하는 패턴 public ..

Software Engineering

[디자인패턴] 어댑터(Adapter) 패턴

1. Adapter란? '사전적 의미 - 기계, 기구 등을 다목적으로 사용하기 위한 부가 기구' 어댑터는 우리 주변에서도 많이 볼수 있다, 대표적으로 110V 가전제품에 220V 어댑터를 끼워 사용하는걸 예로 들 수 있다. 다시 말해 서로 호환되지 않는 기능을 어댑터를 통해 호환시켜 작동하다록 하는 역할을 한다. 위 내용을 객체지향 프로그래밍에 적용시켜 보면 어댑터 패턴은 아래와 같은 내용으로 설명할 수 있다. '어댑터 패턴은 호환되지 않는 인터페이스를 가진 객체들이 협업할 수 있도록 하는 구조적 디자인 패턴' 2. Adapter 패턴의 구현 요구사항 두 수에 대한 다음 연산을 수행하는 객체 구현 수의 두 배의 수를 반환 twiceOf(float):float 수의 반(1/2)의 수를 반환 halfOf(f..

Software Engineering

[디자인패턴] 전략(Strategy) 패턴

1. 인터페이스란? - 키보드나 디스플레이 따위처럼 사람과 컴퓨터를 연결하는 장치 - 기능에 대한 선언과 구현을 분리해주는 기능 역할 - 기능을 사용하는데 있어서 통로 역할 2. 델리게이트(Delegate)란? - 사전적 의미에서는 어떤 사람이나 그룹을 대신하는 사람, 즉 대리인 혹은 대표로 해석 - 특정 기능의 동작을 다른 객체에게 위임하여 동작하도록 함 public class AService { //has a 관계 BRepository bRepository; public void save() { // save 동작을 bRepository에게 위임하여 처리 bRepository.save(); } } 3. 전략(Strategy) 패턴 - 여러 알고리즘을 하나의 추상적인 접근점(인터페이스)을 만들어 접근점..

turtleDev
'Software Engineering' 카테고리의 글 목록