본문 바로가기

전략 패턴 (using Interface) "어떤 클래스가 여러 구현클래스를 갖는 어떤 Interface를 사용한다." 변하지 않는 클래스가..변하는 부분에 대한 메소드를 선언만하고 있는 인터페이스를 사용하고해당 인터페이스에 대입될 구현 클래스는 그때 그때 상황/전략에 따라 결정된다. (생성) (사용) [Client] -----------> [Context/Template/변하지 않는 부분] ------------> [Interface] | | | ----------------- | (생성/ Context에 주입) | | ---------------------------------------> [Implement/변하는부분] [Implement] 더보기
템플릿 메소드 패턴 (abstract, extends) "추상메소드를 활용한 상속관계를 갖는다." 변경이 없을 부분은 부모 클래스가 구현하고..변하는 부분은 부모클래스가 abstract 메소드로 선언하고,자식 클래스가 그 abstract 메소드를 구현한다. 더보기
DI Container = ApplicationContext의 또 다른 이름.. 다시 간단 정리하면 스프링이라는 프레임워크는 개발자의 코드를 수동적으로 만든다. 1. 개발자의 코드는 능동적으로 스스로 실행되지 않는다. (객체화되지 않는다.) --> 스프링 프레임워크가 실행시켜줘야 실행된다. 2. 개발자의 코드는 오브젝트와의 의존관계를 스스로 결정하고 맺지 않는다. --> 스프링 프레임워크가 런타임시에 오브젝트간 의존관계를 맺어준다. --> 스프링이 이런 역할을 해주기 때문에. Bean Factory/ ApplicationContext/ IoC 컨테이너/ SingltoneRegistry 등의 많은 이름(?)으로 불리우는 이 것이 DI 컨테이너라는 또 다른 이름으로 불리우는 이유다. 스프링이 DI Container 로서, Dependency Injection(의존성 주입)을 잘 할 수 .. 더보기