2017년 1월 13일 금요일

15. 의존성 주입(Dependency Injection)


정의 프로그래밍에서 구성요소간의 의존 관계가 소스코드 내부에서 만들어지는 것이 아닌 외부에서 생성되어 내부로 주입되도록 하는 패턴     목적 코드의 재사용성을 높이고 코드 변경 요청에 쉽게 대처할 수 있도록 기능에 따라 구조를 분리   Creater Injection 필요한 의존성을 모두 포함하는 클래스의 생성자를 만들고 그 생성자를 통해 의존성을 주입한다.   Setter Injection 의존성을 입력받는 세터(Setter) 메소드를 만들고...

14. MVC 패턴(MVC Pattern)


정의 컴포넌트를 데이터를 저장하는 모델, 실제 사용자에게 보이는 뷰, 모델과 뷰 사이에서 중재자 역할을 하는 컨트롤러로 나누어 독립적인 역할을 부여하는 패턴   목적 코드의 재사용성을 높이고 코드 변경 요청에 쉽게 대처할 수 있도록 기능에 따라 구조를 분리   Model 패턴 내에서 사용되는 모든 데이터가 저장된...

13. 컴포지트 패턴(Composite Pattern)


정의 객체들을 트리 구조로 구성하여 부분과 전체를 나타내는 계층구조로 만드는 패턴     목적 사용자로 하여금 개별 객체와 다른 객체들로 구성된 복합 객체의 차이를 알 필요 없이 같은 똑같은 객체로 취급하게 만듬   장점 개별 객체와 복합 객체를 똑같이 취급하므로 코드의 길이가 짧아진다. 새로운...

12. 이터레이터 패턴(Iterator Pattern)


정의 컬렉션 객체의 구성 방식과 관계없이 객체 내의 모든 요소들을 순차적으로 접근할 수 있는 기능을 제공하는 패턴     목적 컬렉션 객체의 내부 구조를 드러내지 않고 보관된 개체들에 대한 순차적 접근 방법 정의   장점 컬렉션의 종류에 구애받지 않고 사용할 수 있다. 집합 객체에 다양한 순회...

11. 상태 패턴(State Pattern)


정의 클래스 내부의 상태의 변화에 따라 동일한 요청에 대하여 클래스가 취하는 행동 또한 변하는 패턴     목적 객체의 상태를 각각의 클래스로 캡슐화 하여 동적으로 행동을 교체할 수 있도록 한다.   장점 상용자는 자신의 행동에 의해 객체 내부에서 어떤 행동을 실행하는지 알 필요가 없다.  ...

10. 템플릿 메소드 패턴(Template Method Pattern)


정의 상위 클래스에서는 알고리즘의 골격만을 미리 정의해 두고 각 단계에서 수행될 구체적인 행동은 서브클래스에서 구현하도록 한 패턴     목적 알고리즘의 구조는 그대로 유지하면서 서브클래스에서 특정 단계의 행동을 재정의하여 사용한다.   장점 사용자가 직접 다루어야 할 객체의 수가 줄어든다. 사용자와...

09. 퍼사드 패턴(Facade Pattern)


정의 사용자에게 복잡한 과정은 드러내지 않고 일련의 하위 과정들을 아우르는 상위 수준의 인터페이스를 제공하여 하위 서비스들을 사용하기 쉽게 만든 패턴     목적 서브시스템 내의 인터페이스 집합에 대한 획일화된 하나의 상위 수준의 인터페이스를 제공   장점 사용자가 다루어야 할 객체의 수가...