Design Architecture/Design Pattern

11강 Factory method & Abstract Factory Patterns

lipnus 2021. 8. 29. 15:47
반응형

enw쓰면 콘크리트 클래스의 dependency가 생기게 된다

new를 안쓰고 싶다?!

 

 

 

만든느건 따로 떼어낸다.
새로운 피자를 만들 때 아무런 영향을 받지 않음

 

store와 pizza가 따로 노는 문제가 있음
노출시키고 하위클래스가 그걸 하도록 함

 

framework를 만들어서 두개를 엮음
클라이언트는 하위클래스를 만들어서 createPizza 오버라이드함

 

instantiation을 하위클래스로 짬때림
구린 예
DIP = concreate한 것에 대해 dependency가지지 마라. (abstraction에 dependency를 가져야 함)
자주 변할 수 있는 클래스에 직접적으로 연관되어 있음 / PizzaStore는 특정한 피자는 모름 각 피자들이 변경되어도 상위의 클래스들에 영향을 안준다.

 

 

 

 

createion을 하위클래스가 아니라 다른 객체에 delegate함

 

 

concrate클래스가 직접 드러나지 않는다!

 

제3의 Factory에게 Delegation해서 생성함.

 

여기 예제에서는 이전거는 놔두고 새로운부분(재료)만 abstract Factory로 구현

 

 

단점 : 새로운 것들이 나오면 ㅈ됨

 

라디오버튼타입이 새로 생기면 전부 싹다 추가해줘야함
concrete한 factory추가하는건 아주 쉬움

 

 

 

반응형

'Design Architecture > Design Pattern' 카테고리의 다른 글

13강 Singleton  (0) 2021.08.29
12강 Builder  (0) 2021.08.29
10강 Mediator Pattern  (0) 2021.08.29
9강 State Pattern  (0) 2021.08.29
8강 Iterator Pattern  (0) 2021.08.29