- 디자인 패턴 카탈로그란?
디자인 패턴에 대한 설명을 자세하게 설명한 것으로 패턴의 용도, 만들어진 배경, 적용될 수 있는 범위, 해결책, 적용한 결과(장점과 단점) 등을 자세하게 기술한 것으로 정의된 다자인 패턴에 대해서 바로 알아볼 수 있으며, 어느 상황에 적용해야 하는지를 알려 준다. - 디자인 패턴 카탈로그 구성 요소
- 디자인 패턴 이름 (Name)
패턴에서 가장 중요한 것으로 다른 개발자들과 정보를 공유하기 위해서 필요하다. - 용도 (Intent)
패턴의 역할이 간단히 기술되며, 패턴을 정의할 때 썼던 내용이 들어간다. - 동기 (Motivation)
문제를 기술하고 주어진 해결책이 어떻게 문제를 해결하는지 구체적인 시나리오가 주어진다. - 적용 대상 (Applicability)
패턴이 적용할 수 있는 상황이 기술된다. - 구조 (Structure)
패턴에서 쓰이는 클래스들의 관계를 보여주는 다이어그램이 수록된다. - 구성 요소 (Participant)
디자인에 포함되는 클래스와 객체들에 대한 설명이 들어 있고, 패턴 내에서 클래스/객체가 맡는 임무와 역할을 설명한다. - 협동 (Collaborations)
구성요소(Participant)들이 패턴 내에서 어떤 식으로 서로 도움을 주는지가 설명된다. - 결과 (Consequences)
패턴을 사용했을 때의 효과인 장점과 단점이 수록된다. - 구현 (Implementation)
패턴을 구현할 때 필요한 기술 및 주의사항에 대한 설명이 들어있다. - 샘플 코드 (Sample Code)
구현하는 데 도움이 될 만한 코드를 제공한다. - 사용 예 (Known uses)
실제 시스템에서 패턴을 사용하는 예에 대한 설명이 들어있다. - 관련 패턴 (Related Patterns)
이 패턴과 다른 패턴 사이의 관계에 대한 설명이 나와있다. - 디자인 패턴 카탈로그를 통해서 패턴이 어느 곳에 사용 되어야 적절한지 파악하기 쉽다.
디자인 패턴 카탈로그
디자인 원칙
- 애플리케이션에서 달라 지는 부분을 찾아내고, 달라 지지 않는 부분으로부터 분리 시킨다.
-> 달리지는 부분을 찾아서 나머지 달라 지지 않는 부분에 영향을 주지 않도록 캡슐화 한다.
-> 달라 지는 부분을 캡슐화해서 분리하면, 코드를 변경하는 과정에서 의도하지 않은 일이 일어나는 것을 줄이고, 시스템의 유연성은 향상 시킬 수 있다. - 구현이 아닌 인터페이스에 맞춰서 프로그래밍 한다.
-> 변경되지 않는 부분에서 인터페이스로 구현된 부분에 대해서는 관심을 가지지 않아도된다. - 상속 보다는 구성을 활용한다.
->A는 B이다. 보다는 A에는 B가 있다가 나을 수 있다.
->구성(Composition)을 이용하여 시스템을 만들면 유연성을 크게 향상 시킬 수 있다.(유연성은 변경된 부분을 캡슐화하여 실행 시에 행동을 바꿀 수 있도록 한다.)
피드 구독하기:
글 (Atom)