비록 시작은 코딩일기지만, 그 끝은 창대하게
어엿한 개발자 블로그로 성장할 수 있도록.
본 게시글은 김영한님의 스프링 핵심 원리 강의 내용을 정리한 글입니다.
유연
하고 변경
이 용이하다?
세상을 역할
과 구현
으로 구분해보자
운전자
와 자동차
운전자 역할
과 자동차 역할
이 있을 때, 자동차에는 어떠한 자동차가 와도 운전자에 영향을 끼치지 않는다. 차가 바뀌어도 운전자는 그대로 운전할 수 있다.
운전자는 자동차 인터페이스
만 다룰 줄 알면 된다.
즉, 클라이언트에 영향을 끼치지 않으면서 새로운 기능을 제공할 수 있다.
로미오
와 줄리엣
(공연)로미오와 줄리엣 공연에서 로미오, 줄리엣 역할에는 배우 아무나 배역이 가능하다.
어떤 배우든지 그 배역을 맡을 수 있고, 다른 배우로 대체도 가능하다.
이 밖에도 키보드, 마우스 등 표준 인터페이스
, 정렬 알고리즘
등이 있다.
이렇게 역할
과 구현
으로 구분하면 세상이 단순
해지고 유연
해지며 변경이 용이
해진다.
그리고 다음과 같은 장점
을 얻는다.
그렇다면 Java
에서는?
역할
은 인터페이스
구현
은 인터페이스를 구현한 클래스, 구현 객체
객체를 설계할 때 역할
과 구현
을 명확하게 분리하자.
인터페이스(역할)
을 먼저 부여하고, 그 다음 이를 수행하는 객체
를 구현하자.
본질
유연
하게 변경
가능관계
에서 시작해야함인터페이스를 안정적으로 잘 설계하는 것이 굉장히 중요하다.
다형성
이 가장 중요하다.극대화
시켜준다.IoC
, DI
는 다형성
을 활용해 역할
과 구현
을 편리하게 다룰 수 있도록 지원한다.Spring에서 다형성
과 더불어 굉장히 중요한 것이 바로 SOLID 원칙
은 다음편에 이어서..