예를 들어 장바구니에 추가 할 수있는 Product 클래스가 있다고 가정합니다. 장바구니에 들어있을 때 다른 항목과 함께 포장하고 15 % 할인을 추가 할 수 있습니다.개체에 대한 장식자를 만드는 것이 적절한 경우와 전략을 적용 할 수 있도록 개체를 다시 쓰는 것이 적절한 경우는 언제입니까?
거래가 허용되는 새로운 하위 클래스로 상품 클래스를 장식해야합니까? 아니면 제품 클래스가 제품에 가격 인하 전략 객체를 첨부하여 가격을 낮추도록 재 설계해야합니까?
이것은 추상적 인 예이므로 어디서나 가져 가십시오.
당신은 내가 포함 할 거라고 여기 단어를 사용 내 대답은 : "주사". 나는 주사와 전략을 함께 사용하는 경향이 있습니다. Decorating을 기존 기능을 추가하는 것으로 생각하는 경향이 있습니다. 내 'child.SomeMethod()'메서드가 'base.SomeMethod()'를 호출 할 때 별 장식을 사용하는 경향이 있습니다. –
이렇게 인위적인 예제를 사용하면 장바구니에 거래를 "인식"시키거나 "할인 제품"데코레이터 클래스로 장바구니에 제품을 포장하는 것이 더 적절합니까? – Zak
서면으로 그렇습니다. 실제로 제품과 카트에 관해서는, 절약 된 금액을보고 할 수 있도록 할인 된 가격과 원래 가격을 알고 싶을 것입니다.이 경우 예가 떨어져 나갑니다. –