최근 Ruby on Rails 커뮤니티에는 데코레이터 와 발표자 에 대한 모든 종류의 이야기 가 있습니다.
둘의 근본적인 차이점은 무엇입니까? 만약 있다면, 어떤 것을 다른 것보다 사용할 것인지 알려주는 단서는 무엇입니까? 아니면 두 가지를 함께 사용 하시겠습니까?
답변
데코레이터는 “이 엔티티에 일부 기능을 추가하자”에 가깝습니다. 발표자는 “모델 / 백엔드와보기 사이에 다리를 놓자”에 가깝습니다. 발표자 패턴에는 여러 가지 해석이 있습니다.
데코레이터는 일반 / 일반적인 용도입니다. 발표자는 책임 / 사용 범위가 좁습니다. 데코레이터는 도메인 전체에서 사용되며 발표자는 거의 항상보기와 유사한 기능과 관련이 있습니다.
답변
나는 이것을 확인하는 것이 좋습니다- 전시 대 발표자 .
데코레이터는 특정 개체의 다른 인스턴스에 영향을주지 않고 특정 개체를 래핑하여 기능을 확장하는 데 사용되는 디자인 패턴입니다. 일반적으로 데코레이터 패턴은 열기 / 닫기 원칙 (클래스는 수정을 위해 닫히지 만 확장에 사용할 수 있음).
전시 및 발표자 패턴은 모두 일종의 데코레이터 패턴입니다.