aaaa

팩토리 패턴

new -> 구상
new를 사용하면 구상 클래스의 인스턴스가 만들어집니다.

인터페이스에 맞춰 코딩하면 시스템에서 일어날 수 있는 여러 변화에 대응할 수 있음. 인터페이스를 바탕으로 만들어진 코드는 어떤 클래스든 특정 인터페이스만 구현하면 사용할 수 있기 때문.(다형성)

구상클래스를 많이 사용하면 새로운 구상클래스가 추가될때마다 코드를 고쳐야 함.(변경에 닫혀있는 코드)

바뀌는 부분과 바뀌지 않는 부분을 구분하기

  • 바뀌는 부분 : 캡슐화

심플 팩토리 클래스

팩토리 : 객체 생성을 처리하는 클래스 => 생성자만 만들어 줌.

팩토리 메서드 패턴

  • 모든 팩토리 패턴은 객체 생성을 캡슐화 함.
  • 팩토리 메서드 패턴은 서브클래스에서 어떤 클래스를 만들지를 결정함으로써 객체 생성을 캡슐화 함.

생산자 클래스

제품 클래스

객체 인스턴스를 직접만들면..

객체인스턴스를 직접 만들면 구상 클래스에 의존해야 함. (심하게 객체에 의존적인 스타일)

  • 무슨 피자를 주문하느냐에 따라 피자 만드는 방법이 너무나 의존적으로 결정됨.
  • 피자를 만들면 해야할 일과 구체적으로 어떤 피자를 어떻게 만들지를 분리 시켜야 함.