Writing Design Patterns
이 책은 디자인 패턴에 익숙하지 않은 사람들을 대상으로하고 있지만 디자인 패턴 작성 방법에 대한 근본적인 이해는 많은 유용한 이점을 제공합니다. 처음에는 패턴이 필요한 이유에 대한 더 깊은 이해를 얻을 수 있습니다. 우리는 패턴 (또는 원시 패턴)이 우리 자신의 필요에 따라 검토 할 때 흠집이 있는지 여부를 알 수있는 방법을 배울 수도 있습니다.
좋은 패턴을 작성하는 것은 어려운 작업입니다. 패턴은 최종 사용자에게 상당한 양의 참조 자료를 제공해야 할뿐만 아니라 필요한 이유를 방어 할 수 있어야합니다.
패턴이 무엇인지에 대한 이전 섹션을 읽었을 때, 우리는 그 자체만으로도 야생에서 볼 수있는 패턴을 식별하는 데 도움이 될 것이라고 생각할 수 있습니다. 이것은 사실 전혀 사실이 아닙니다. 우리가보고있는 코드가 설정된 패턴을 따르고 있거나 우연히 그 패턴이 나타나고있는 것처럼 보이는 것은 항상 명확하지 않습니다.
우리가 패턴을 사용하고 있다고 생각하는 코드 본문을 살펴볼 때 특정 기존 패턴 또는 패턴 세트에 속한다고 믿는 코드의 일부를 적어 놓는 것을 고려해야합니다.
패턴 분석의 많은 경우 우연히 패턴 규칙과 겹칠 수있는 좋은 원칙과 설계 방법을 따르는 코드 만보고있는 것입니다. 기억하십시오 - 상호 작용이나 정의 된 규칙이 나타나지 않는 솔루션은 패턴이 아닙니다.
자신의 디자인 패턴 작성의 길을 탐험하는 데 관심이 있다면 이미 프로세스를 통해 잘 수행 한 다른 사람들로부터 배우는 것이 좋습니다. 다양한 디자인 패턴 설명의 정보를 흡수하고 의미있는 것을 취하십시오.
구조와 의미를 탐색하십시오 - 관심있는 패턴의 상호 작용과 상황을 검토하여 유용한 구성에서 패턴을 함께 구성하는 데 도움이되는 원리를 식별 할 수 있습니다.
우리가 패턴 문학에 대한 풍부한 정보에 노출되면 기존 형식을 사용하여 패턴을 쓰고 새로운 아이디어를 향상 시키거나 거기에 아이디어를 통합 할 수 있는지 알아볼 수 있습니다.
최근에 이런 일을 한 개발자의 예가 Christian Heilmann입니다. Christian Heilmann은 기존 Module Pattern을 가져 와서 Revealing Module 패턴 (이 책의 뒷부분에서 다룰 패턴 중 하나입니다)을 만들기 위해 근본적으로 유용한 변경을했습니다.
다음은 새로운 디자인 패턴을 만드는 데 관심이있는 경우 제안할만한 팁입니다.
패턴이 얼마나 실용적입니까? 패턴이 정규화되지 않은 투기 솔루션이 아닌 반복되는 문제에 대한 입증 된 솔루션을 설명하는지 확인하십시오.
모범 사례를 염두에 두십시오 : 우리가 내리는 설계 결정은 모범 사례를 이해함으로써 얻은 원칙을 기반으로해야합니다.
우리의 디자인 패턴은 사용자에게 투명해야합니다. 디자인 패턴은 모든 사용자 경험 유형에 대해 완전히 투명해야합니다. 개발자가 주로 사용하는 개발자에게 서비스를 제공하기 때문에 개발자가 패턴을 사용하지 않아도 사용자 경험에서 변경되지 않도록해야합니다.
독창성은 패턴 디자인에서 중요하지 않다는 것을 기억하십시오 : 패턴을 작성할 때, 우리는 문서화 된 솔루션의 원래 발견자가 될 필요가 없으며 작은 패턴의 다른 패턴과 중복되는 디자인에 대해 걱정할 필요가 없습니다. 접근 방법이 광범위하고 유용하게 적용될 수있을 정도로 강하면 유효한 패턴으로 인식 될 가능성이 있습니다.
패턴에는 강력한 예제가 필요합니다. 좋은 패턴 설명 뒤에는 패턴의 성공적인 적용을 보여주는 똑같은 강력한 일련의 예제가 있어야합니다. 폭 넓은 사용법을 보여주기 위해 좋은 디자인 원칙을 보여주는 예제가 이상적입니다.
패턴 작성은 일반적이며 특수한 디자인과 무엇보다 유용한 디자인을 조화롭게 만드는 것입니다. 패턴을 작성하는 경우 가능한 가장 넓은 영역을 커버 할 수 있도록 노력해야합니다. 작문 패턴에 대한 간단한 소개로이 책의 다음 섹션에서 학습 과정을 지원할 수있는 몇 가지 통찰력을 얻었 으면합니다.