백엔드 스터디 design patterns

14
백백백 백백백 Design Patterns Factory Pattern

Upload: hyeonjeong-byeon

Post on 08-Jan-2017

1.568 views

Category:

Software


2 download

TRANSCRIPT

Page 1: 백엔드 스터디 Design patterns

백엔드스터디Design Patterns

Factory Pattern

Page 2: 백엔드 스터디 Design patterns

참고도서

Head First Design Patterns 자바객체지향디자인패턴

Page 3: 백엔드 스터디 Design patterns

● ‘우리가사용하는 new’● Factory Pattern● Simple Factory● Factory Method Pattern● Dependency Inversion Principle(DI)● Abstract Factory Pattern

Page 4: 백엔드 스터디 Design patterns

‘우리가사용하는 new’

- new 를사용하는것은구상클래스의인스턴스를만드는것

- 자바에서객체를생성할때는 new 를사용한다 .

- Pizza pizza = new ChessesPizza();- ‘변화 ' 되는것때문에 new 를사용하는데있어서

조심해야함- 바뀔수있는부분을찾아내서바뀌지않는부분과

분리하는원칙을생각해보자 .- 객체를생성할때어떻게할것인지 ?

Page 5: 백엔드 스터디 Design patterns

Factory Pattern

- 팩토리를쓰면객체생성을캡슐화할수있다 .

- 모든팩토리패턴에서는애플리케이션의구상클래스에 대한의존성을줄여줌으로써 느슨한결합 을도와준다 .

- 팩토리는구상클래스가아닌추상클래스 / 인터페이스에 맞춰서코딩할수있게한다 .

Page 6: 백엔드 스터디 Design patterns

Simple Factory - 엄밀하게말하자면디자인패턴은아님 .

Page 7: 백엔드 스터디 Design patterns

Factory Method Pattern

- 상속을활용- 객체를생성하기위한인터페이스를정의하는데

어떤클래스의인스턴스를만들지는 서브클래스에서결정하게만든다 . ( 객체생성이 서브클래스에게위임 )

- 클래스의인스턴스를만드는일을서브클래스에게맡김

Page 8: 백엔드 스터디 Design patterns

Factory Method Pattern

Page 9: 백엔드 스터디 Design patterns
Page 10: 백엔드 스터디 Design patterns

Dependency Inversion Principle - 의존성뒤집기원칙

- 추상화된것에의존하도록만들자 . 구상클래스에의존하도록 만들지않도록한다 .

- “ ” 특정구현이아닌인터페이스에맞춰서프로그래밍한다 는 원칙보다추상화를더많이강조

- 고수준의구성요소가저수준구성요소에의존하면안된다 . (‘고수준 ' ‘구성요소는다른 저수준 ' 구성요소에의해정의되는행동이

들어있는구성요소를말함 )

- 구상클래스처럼구체적인것이아닌추상클래스나 인터페이스와같이추상적인것에의존하는코드를만들자 .

Page 11: 백엔드 스터디 Design patterns
Page 12: 백엔드 스터디 Design patterns
Page 13: 백엔드 스터디 Design patterns

Abstract Factory Pattern

- 객체의구성을활용

- 객체생성이팩토리인터페이스에서선언한메소드들에서구현

- 인터페이스를이용하여서로연관된 , 또는의존하는 객체를구상클래스를지정하지않고도생성할수있다 .

- 구상클래스에직접의존하지않고도서로관련된 객체들로이루어진제품군을만들기위한용도로사용

Page 14: 백엔드 스터디 Design patterns