문서화 된 디자인 패턴을 사용하지 않은 모든 이전 응용 프로그램을 성공적으로 확장 할 수 있습니다. 그것이 무엇인지 모르는 것입니다. 대체로 간단한 OOP 개념 만 사용해야한다는 느낌이 들었습니다.
디자인 패턴 개념은 복잡하고 이해하기 어렵습니다. 구현할 때 구현이 올바른지 여부와 응용 프로그램이 실제로 느슨한 결합을 가지고 있는지 확인하는 방법은 무엇입니까?
문서화 된 디자인 패턴을 사용하지 않은 모든 이전 응용 프로그램을 성공적으로 확장 할 수 있습니다. 그것이 무엇인지 모르는 것입니다. 대체로 간단한 OOP 개념 만 사용해야한다는 느낌이 들었습니다.
디자인 패턴 개념은 복잡하고 이해하기 어렵습니다. 구현할 때 구현이 올바른지 여부와 응용 프로그램이 실제로 느슨한 결합을 가지고 있는지 확인하는 방법은 무엇입니까?
답변:
대답을 간결하게 유지하려면 코드에 다음과 같은 특성이 표시되면 의도적 인 노력을 기울이지 않아도 (패턴이 아님) 패턴이 적용되었다고 확신 할 수 있습니다.
원하는 특성 :
그래도 실제 패턴 이름으로 코드를 식별하고 태그를 지정하는 데 관심이 있다면 볼 롤링을 얻기 위해 다음 작업을 수행하는 것이 좋습니다.
이것은 당신에게 공정한 아이디어를 줄 것입니다.
디자인 패턴과 커플 링을 모두 언급했습니다. 이것들은 별개의 개념이므로 따로 다루겠습니다. 유일한 연결은 디자인 패턴이 느슨한 커플 링을 촉진하는 경향이 있다는 것입니다 (좋은 디자인의 주요 측면이므로).
디자인 패턴
디자인 패턴의 개념은 실제로 매우 간단합니다. 다양한 일반적인 문제를 처리하는 방법에 대한 템플릿 모음 일뿐입니다. 그들이 인기있는 두 가지 주요 이유가 있습니다.
올바르게 구현했는지 어떻게 알 수 있습니까? 까다로운 일입니다. 대부분의 패턴은 간단합니다. 패턴을 정리했거나하지 않았습니다. 일부 패턴은 다른 패턴보다 명확하게 정의되지 않습니다 (예 : model-view-controller) . 이와 같은 패턴은 일반적인 지침으로 더 잘 사용됩니다. 패턴을 구현하는 이유와 패턴이 존재하는 이유를 이해하는 것보다 구현 방법의 세부 사항이 덜 중요합니다.
디자인 패턴은 '진정한 방법'이 아닙니다. 종종 특정 목적에 맞게 조정해야하거나 때로는 요구 사항에 맞는 패턴이 없을 수도 있습니다. 맞지 않는 곳에 디자인 패턴을 강요하는 것은 나쁜 생각입니다. 실제로 원하는 것이 드라이버 일 때 정말 좋은 망치를 사용하는 것과 같습니다.
커플 링
이것은 컴퓨터 과학에서 정말 중요한 아이디어입니다. 대부분의 소프트웨어 프로젝트에 대한 요구 사항은 시간이 지남에 따라 (때로는 크게) 변경되기 때문에 설계가 변경에 대처하는 능력이 중요합니다. 커플 링은 기본적으로 "이 구성 요소를 다른 구성 요소로 교체하기가 얼마나 어려울까요?"의 척도입니다. 'component'는 메소드, 클래스, 패키지, 라이브러리 등이 될 수 있습니다.
이 Wikipedia 기사 에는 다양한 유형의 커플 링이 나열되어 있습니다.
디자인 패턴을 사용하는 것은 예방 조치입니다. 나중에 응용 프로그램을 확장 할 때 디자인 패턴을 사용하여 작업을 용이하게합니다. 물론 나중에 작업을 쉽게하려면 지금 약간 더 많은 작업을 수행해야합니다. 실제 질문은 앞으로 얼마나 많은 변화를 기대할 수 있고이 변화가 무엇인지에 대한 것입니다. 확장 성과 유연성이 필요하지 않으면 디자인 패턴을 제거 할 수 있습니다.
디자인 패턴 자체는 객체 지향 디자인 원칙의 구현입니다. 이러한 원칙을 따르는 한 응용 프로그램은 유연하고 확장 가능합니다. 실제 디자인 패턴이없는 경우에도 마찬가지입니다. Joachim Sauer는 위에서 언급 한 것처럼 일반적인 문제에 대한 일반적인 해결책입니다.