디자인패턴 2

팩토리 패턴(Factory Pattern) 이란?

이번 시간에는 팩토리 패턴(Factory Pattern)에 대해서 알아보도록 하겠습니다. 원칙 : 바뀔 수 있는 부분을 찾아내서 바뀌지 않는 부분하고 분리시켜야 한다. new를 사용하는 것은 구상클래스의 인스턴스를 만드는 것입니다. 구상클래스를 바탕으로 코딩을 하면 나중에 코드를 수정해야할 가능성이 높아지고, 유연성이 떨어지게 됩니다. 그 이유는 바로 변화에 약하기 때문입니다. 인터페이스에 맞춰서 코딩을 하면 시스템에서 일어날 수 있는 여러가지 변화를 이겨낼 수 있습니다. 이렇게 구상클래스의 인스턴스를 만드는 부분을 찾아서 분리/캡슐화 하기 위해서 바로 팩토리 패턴을 씁니다.팩토리 메소드 패턴에서는 객체를 생성하기 위한 인터페이스를 정의하는데, 어떤 클래스의 인스턴스를 만들지는 서브클래스에서 결정하게 만..

스테이트 패턴(State Pattern) 이란?

이번 시간에는 스테이트 패턴(State Patter)에 대해서 알아보겠습니다. 사탕 뽑기 기계 프로그램을 구현한다고 가정하면 사탕뽑기 기계는 '동전없음', '동전있음', '상품배출', '상품품절' 상태를 가질 것입니다.그리고, 사탕뽑기의 각 상태는 아래와 같은 행위를 통해서 다른 상태로 변이하게 됩니다. 이 행위들과 상태를 코드로 구현하면 아래와 같이 구현할 수 있을껍니다. public class GumBallMachine { final static int SOLD_OUT = 0; final static int NO_QUARTER = 1; final static int HAS_QUARTER = 2; final static int SOLD = 3; private int numberOfGumBall = 0;..