본문 바로가기

이론/JSP&Spring&등등 이론

[Spring/디자인패턴] 리팩토링, 템플릿메소드패턴, 팩토리메소드패턴, 전략페턴, IoC, 빈 개념정리

출처- 토비의스프링 3.1 Vol.1

리팩토링


"기존의 코드를 외부의 동작방식에는 변화 없니 내부 구조를 변경하여 재구성하는 프로세스로 코드의 이해, 앞으로의 변화에 대응할 수 있도록 하며 생산성과 품질을 높여준다. 가장 대표적인 리팩토링 기법에는 중복된 코드 제거가 있다."


템플릿메소드패턴 & 팩토리메소드패턴


템플릿메소드패턴

"슈퍼클래스에 추상메소드나 오버라이딩 가능한 메소드를 정의하고 이 메소드를 사용하는 기본 알고리즘을 포함한 템플릿 메소드를 구현하여 서브클래스에서 오버라이딩할 수 있도록 하는 패턴"

팩토리메소드패턴

"슈퍼클래스에서 서브클래스가 구현할 메소드(주로 인터페이스)를 호출하여 오브젝트를 가져와 사용한다. 서브클래스는 이 인터페이스를 구체화할 수 있도록 미리 정의해놓은 이 메소드를 팩토리메소드라고 한다. "

팩토리란?

"객체의 생성 방법을 결정하고 그 오브젝트를 돌려주는 오브젝트이다. 즉, 오브제트를 생성하는 쪽과 사용하는 쪽이 분리되어있다."


전략패턴


"변경이 필요한 알고리즘은 인터페이스를 통해 통채로 외부로 분리하는 패턴"


IoC(제어의 역전)


일반적인 java code(main함수 내에서 실행되는)는 사용하는 쪽에서 모든 작업을 제어한다. IoC란 오브젝트가 자신이 사용할 오브젝트를 직접 선택하지 않고 다른 대상에게 위임하는 것을 말한다. 스프링에서는 스프링 컨테이너(application-context.xml)가 이것을 담당한다. 객체의 생성, 호출, 소멸과 같은 생명주기를 관리하고 통신,스레드기반의 병렬처리를 대신한다.



"스프링(컨테이너)이 제어권을 가지고 직접 만들고 관계를 부여하는 오브젝트로 스프링 컨테이너가 생성과 관계를 설정하고 사용을 제어한다. application-context내에서 수행되며 이것은 일종의 빈 팩토리라고도 부른다."