IoC / DI
- IoC 컨테이너
- 설명 :
- 오브젝트가 자신이 사용할 오브젝트를 스스로 선택하지 않는다. 제어 권한을 자신이 아닌 다른 대상에게 위임. 생성자 주입과 같은 DI를 통해 IoC가 가능해진다.
- 장점
- 단점
- 객체를 동시에 2개 생성하는 싱글톤 문제 발생
- 해결방법
- synchronized
- double checked locking
- lazy holder
- → 상태변수가 없는 immutable 클래스
- DI
- 설명
- IoC의 일종
- 런타임 시점의 의존관계가 코드에 드러나지 않는다.
- 제 3의 존재가 의존관계를 맺어준다
- 의존관계는 사용할 오브젝트에 대한 레퍼런스를 외부에서 제공해줌으로써 만들어진다
- 장점
- 단점
전략 패턴
전략 패턴이란 객체가 할 수 있는 각 행위에 대해 전략 클래스를 생성하고, 인터페이스를 통해 동적으로 행동을 바꿀 수 있는 패턴을 말합니다.
단순히 전략이 1개, 2개 정도일 경우에는 분기문을 사용하는 것이 편할 수 있습니다. 전략 패턴 설계가 과도한 개발 비용을 요구할 수 있습니다. 하지만 행동의 형태가 다양한 것이 어느정도 보장된다면 사용할 수 있다고 생각합니다.
참고
토비의 스프링