문제

나는 최근에 진정으로 의존성 주입과 데코레이터 디자인 패턴의 경이로움을 진정으로 식별했으며 모든 곳에서 그것을 사용하고 있습니다.

그러나 내가 어려움을 겪고있는 한 가지는 내 장식 자 수업의 이름을 지정하는 것입니다. 그래서 나는 다른 사람들이 무엇을하는지 알고 싶습니다. 당신은 항상 Decorator라는 단어를 추가합니까? 장식하는 인터페이스의 이름을 통합합니까? 그들은 자신의 네임 스페이스를 얻습니까?

너희들은 무엇을합니까?

도움이 되었습니까?

해결책

디자인 패턴 이름을 사용하지 않습니다. 나는 이것이 어디서나 문서에 속한다고 생각합니다. 데코레이터 클래스/기능의 이름을 지정하거나 나타내는 일에 이름을 지정하십시오. 그것이 장식하거나 다리 또는 링크 또는 프록시 또는 재시험이라는 사실은 거의 결과가 아닙니다.

문자열 이름을 지을 때마다 문자열 접미사를 추가합니까? 나에게 hgrnnotation처럼 들리며, 그것은 내가 시도하고 피하는 것입니다.

다른 팁

Java API의 IO 프레임 워크에서 예를 들어보십시오. 데코레이터 패턴을 광범위하게 사용하지만 클래스의 이름은 이것을 반영하지 않습니다. 예를 들어, 버퍼링 리더는 파일러드를 장식 할 수 있지만 기능의 이름을 따서 명명되었습니다.

이름에 데코레이터를 추가하면 경우와 동일한 클래스와 관련된 다른 패턴을 통합하면 더 많은 문제가 발생합니다. MyDecoratorstrategyComponent라는 클래스로 끝날 수 있습니다.

그것이하는 일이라고 부릅니다.

iprinter 인터페이스를위한 데코레이터가 많이 있습니다. 그들은 다음과 같습니다.

  • PrintDisasterRecovery- 예외 처리
  • Printqueuer- 비동기 호출입니다

이 챕터는 모두 printDecorator에서 상속되므로 누군가가 덮개 아래에서 엿볼 경우 무슨 일이 일어나고 있는지 볼 수 있습니다.

일반적으로 패턴이 객체에 캡슐화되는 경우 (vs. 객체 모음)는 클래스에 패턴 이름을 포함시키는 것이 더 명확하고 쉽습니다. Decorator 접미사로. 이것은 프록시, 데코레이터, 공장, 어댑터 등에 적합하지만 브리지와 같은 패턴을 구현할 때 객체 그룹이 필요한 다른 패턴에는 효과가 없습니다 (즉, 어떤 물체가 -브리지 접미사를 적절하게 가져갈 것인가?)

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top