1장 정리

언젠간·2022년 8월 22일
0

토비의스프링

목록 보기
10/16

1. 책임이 다른 코드를 분리하여 두 개의 클래스로 만든다.

2. 바뀔 수 있는 쪽의 클래스는 인터페이스로 구현. 다른 클래스에서 인터페이스를 통해서만 접근하도록 하게한다. (인터페이스를 정의한 쪽의 구현 방법이 달라져 클래스가 바뀌더라도, 그 기능을 사용하는 클래스의 코드는 같이 수정될 필요 없다=전략패턴)

3. 불필요한 변화가 발생하지 않도록 막고, 자신이 사용하는 외부 오브젝트의 기능은 자유롭게 확장하거나 변경할 수 있게 만든다(개방 폐쇄 원칙)

4. 결국 한쪽의 기능 변화가 다른 쪽의 변경을 요구하지 않고(낮은 결합도), 자신의 책임과 관심사에만 순수하게 집중하는(높은 응집도) 코드를 만들 수 있다.

5. 오브젝트의 생성 및 관계를 맺는 작업의 제어권을 별도의 오브젝트 팩토리로 넘기고, 또는 오브젝트 팩토리의 기능을 일반화한 IoC 컨테이너로 넘겨 오브젝트가 자신이 사용할 대상의 생성이나 선택에 관한 책임으로부터 자유롭게 만들어줬다(제어의 역전/IoC).

6. 설계 시점과 코드에는 클래스와 인터페이스 사이의 느슨한 의존관계를 만들어놓고, 런타임시에 실제 사용할 구체적인 의존 오브젝트를 제 3자(DI 컨테이너)의 도움으로 주입받아서 다이나믹한 의존관계를 갖게 해주는 의존관계 주입/DI.

7. 의존 오브젝트가 아닌 일반 값을 외부에서 설정해서 런타임 시에 주입하는 방법(XML)

profile
코딩왕이될사나이

0개의 댓글