티스토리 뷰

develop

2. inversify factory

yogae 2020. 2. 19. 09:22

inversify를 사용하면서 자주 사용하는 factory 패턴에 대하여 정리한다.

 

inversify에서 factory 패턴은 클래스의 인스턴스를 만드는 것을 서브클래스에서 결정하도록 한다는 것입니다. factory 패턴을 찾아보면 서브클래스 안에서 객체를 생성하는 방식을 많이 찾을 수 있다. inversify를 사용하면 서브클래스에서는 객체를 선택만하고 객체 생성은 외부에서 생성하여 서브클래스에 주입하는 방식으로 구현하게 된다.

 

inversify에서 factory 패턴을 구현할 때 named binding을 많이 사용하게 된다. Named binding은 같은 identifier에서 다른 객체를 가지고 올때 사용한다. inversify에서 named binding은 아래와 같이 구성한다.

 

https://github.com/inversify/InversifyJS/blob/master/wiki/named_bindings.md

inversify/InversifyJS

A powerful and lightweight inversion of control container for JavaScript & Node.js apps powered by TypeScript. - inversify/InversifyJS

github.com

위의 예시와 같이 weapon으로 주입하지만 weak와 strong에 따라 다른 객체를 주입하게 된다.

named binding을 사용하여 factory 패턴을 구현하는 방법은 아래 영상에서 정리한다.

 

 

영상에서 구성한 example code는 아래 링크에서 확인할 수 있다.

 

https://github.com/yogae/inversify-example/tree/master/factory_provider

'develop' 카테고리의 다른 글

GraphQL server 구축에 유용한 module 정리  (0) 2020.03.12
3. Test code 작성 + DI  (0) 2020.03.03
1. inversify 시작하기  (0) 2020.02.04
새 리전으로 AWS 리소스 마이그레이션  (0) 2020.01.29
Prisma(GraphQL)  (0) 2020.01.29
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함