2015-03-24 2 views
0

Правильно ли думать, что под капюшонами java-наследование
реализовано с использованием Декоратор-шаблон?
На мой взгляд, наследование и декоратор Pattern выглядят очень похожими почти неразличимы.Наследование Java, выполненное с использованием рисунка декоратора

EDIT:
Я имею в виду, пусть A быть подклассом B, можно сказать, что в A ключевое слово super всегда ссылается на объект типа A мы «украшения».

Благодаря

+1

Я думаю, было бы более точным сказать, что «Декораторный шаблон» реализован с использованием 'Inheritance' – chancea

+0

Кажется, гораздо больше похоже на [inheritance patt ern] (http://en.wikipedia.org/wiki/Inheritance_%28object-oriented_programming%29), чем шаблон декоратора для меня. – khelwood

+0

@chancea Не обязательно. Согласно википедии, узор декоратора CAN может использовать наследование. – GhostCat

ответ

0

У inheritance и decorator pattern есть общий факт, что оба они позволяют изменять поведение объекта. Также, точнее, decorator pattern реализован по концепции inheritance.

Но разница:

1. Decorator pattern делает время выполнения объекта изменяется проще:

2. Decorator Pattern делает несколько модификаций поведения легче

3. Decorator pattern не является необходимым в нединамических ситуациях

0

Сомневаюсь Java реализует наследование под капотом, используя шаблон Decorator. Отношения между базовыми классами и их расширениями фиксируются во время компиляции, тогда как отношения между декораторами и предметами, которые они украшают, могут меняться во время выполнения.

Смежные вопросы