4. 우리가 사용하는 ‘new’
- new 를 사용하는 것은 구상 클래스의 인스턴스를 만드는
것
- 자바에서 객체를 생성할 때는 new 를 사용한다.
- Pizza pizza = new ChessesPizza();
- ‘변화' 되는 것 때문에 new 를 사용하는데 있어서 조심해야
함
- 바뀔 수 있는 부분을 찾아내서 바뀌지 않는 부분과 분리하
는 원칙을 생각해보자.
5. Factory Pattern
- 팩토리를 쓰면 객체 생성을 캡슐화 할 수 있다.
- 모든 팩토리 패턴에서는 애플리케이션의 구상클래스에 대
한 의존성을 줄여줌으로써 느슨한 결합을 도와준다.
- 팩토리는 구상 클래스가 아닌 추상 클래스/인터페이스에
맞춰서 코딩할 수 있게 한다.
10. Dependency Inversion Principle - 의존성 뒤집기 원칙
- 추상화된 것에 의존하도록 만들자. 구상 클래스에 의존하도록
만들지 않도록 한다.
- “특정 구현이 아닌 인터페이스에 맞춰서 프로그래밍 한다” 는 원
칙보다 추상화를 더 많이 강조
- 고수준의 구성요소가 저수준 구성요소에 의존하면 안 된다. (‘고
수준' 구성요소는 다른 ‘저수준' 구성요소에 의해 정의되는 행동이 들어
있는 구성요소를 말함)
- 구상 클래스처럼 구체적인 것이 아닌 추상 클래스나 인터페이스
11.
12.
13. Abstract Factory Pattern
- 객체의 구성을 활용
- 객체 생성이 팩토리 인터페이스에서 선언한 메소드들에서
구현
- 인터페이스를 이용하여 서로 연관된, 또는 의존하는 객체
를 구상 클래스를 지정하지 않고도 생성할 수 있다.
- 구상 클래스에 직접 의존하지 않고도 서로 관련된 객체들
로 이루어진 제품군을 만들기 위한 용도로 사용