빈(bean)스프링이 제어권을 가지고 직접 만들고 관계를 부여하는 오브젝트 스프링 컨테이너가 생성과 관계설정, 사용 등을 제어해주는 제어의 역전이 적용된 오브젝트 빈 팩토리(bean factory)빈의 생성과 관계설정 같은 제어를 담당하는 IoC 오브젝트 애플리케이션 컨텍스트(application context)애플리케이션 컨텍스트는 일종의 빈 팩토리(정확히는 빈 팩토리의 확장)로, 별도의 정보를 참고해서 빈의 생성, 관계설정 등의 제어 작업을 총괄한다. 그 자체로는 애플리케이션 로직을 담당하지는 않지만 IoC 방식을 이용해 애플리케이션 컴포넌트를 생성하고, 사용할 관계를 맺어주는 등의 책임을 담당한다.= 스프링 컨테이너, IoC 컨테이너
전략 패턴(Strategy Pattern)자신의 기능 맥락(context)에서, 필요에 따라 변경이 필요한 알고리즘을 인터페이스를 통해 통째로 외부로 분리시키고, 이를 구현한 구체적인 알고리즘 클래스를 필요에 따라 바꿔서 사용할 수 있게 하는 디자인 패턴. 컨텍스트를 사용하는 클라이언트는 컨텍스트가 사용할 전략을 컨텍스트의 생성자 등을 통해 제공해주는 게 일반적이다.UserDaoTest(클라이언트)-UserDao(컨텍스트)-ConnectionMaker(인터페이스)-DConnectionMaker(전략)
SOLID: 5가지 객체지향 설계의 원칙SOLID는 아래 5가지 원칙의 첫 글자를 따서 만든 단어다.SRP(The Single Responsibility Principle): 단일 책임 원칙OCP(The Open Closed Principle): 개방 폐쇄 원칙LSP(The Liskov Substitution Principle): 리스코프 치환 원칙ISP(The Interface Segregation Principle): 인터페이스 분리 원칙DIP(The Dependency Inversion Principle): 의존관계 역전 원칙방금 배운 OCP 외에는 아무것도 모르겠지만, 이 책을 마무리 지을 때 쯤이면 어느정도 알게 되지 않을까!
개방 폐쇄 원칙(OCP, Open-Closed Principle)클래스나 모듈은 확장에는 열려 있어야 하고 변경에는 닫혀 있어야 한다.잘 설계된 객체지향 클래스는 인터페이스를 이용해 기능을 자유롭게 확장할 수 있는 동시에, 이러한 변화와 상관없이 자신의 코드는 변경되지 않는다.개발 폐쇄 원칙은 높은 응집도와 낮은 결합도(high coherence and low coupling)라는 소프트웨어 개발의 고전적인 원리로도 설명이 가능하다. 응집도가 높다는 건 하나의 모듈, 클래스가 하나의 책임 또는 관심사에만 집중되어 있다는 뜻이다. 결합도가 낮다는 건 하나의 오브젝트가 변경이 일어날 때에 관계를 맺고 있는 다른 오브젝트에게 변화를 요구하는 정도가 낮다는 뜻이다.
- Total
- Today
- Yesterday