Каков лучший шаблон для пакета, модификации которого сделаны вне его? - PullRequest
1 голос
/ 25 сентября 2010

Я ищу шаблон дизайна, который бы соответствовал этим спецификациям:

1- Скажем, у вас есть вьючное животное, включая «Животное», «Кошка» и «Собака».- Вы должны изменить поведение метода в «Animal» (также переопределяется в «Cat» и «Dog», как в пакете), не внося никаких изменений в исходный код животного пакета.для этой цели, но проблема в том, что вы должны изменить исходный код пакета животных с помощью «реализации» интерфейса Visitable, включая метод accept.Однако это не разрешено.

Что вы предлагаете?

Ответы [ 2 ]

1 голос
/ 26 сентября 2010

Я не совсем уверен насчет спецификации, но вы можете использовать Decorator для создания классов вне пакета животного, который будет использовать состав для расширения нормального поведения.

0 голосов
/ 26 сентября 2010

Я согласен с @Gabriel, неплохо бы начать с шаблона Decorator. Простой пример можно найти в Devblog Хольгера Крейссла в Pattern Decorator в C # .

...