|
![]() |
#1 |
Участник
|
Видимо правду говорят, что в Канаде сплошь лес да медведи
![]() 1.Оборачиваються protected методы. 2.Доступ к protected полям класса. 3.Ненадо мучать пре-пост аргументы. 4.Можно добавлять состояние (фишка не СоС но там может пригодиться) 5.Удобный синтаксис ![]() 6.Извращенцы могут скипнуть next. |
|
![]() |
#2 |
Участник
|
Цитата:
2. доступ к полям класса - есть примерчик? 6. скипнуть некст - и чо будет? по-моему, это самое интересное. технически такая обёртка делается наследником класса с перекрытием метода и вызовом его супера, или есть какой-то другой подход?
__________________
Felix nihil admirari |
|
![]() |
#3 |
Участник
|
Цитата:
Ну есть у вас класс X++: class BusinessLogic1 { protected int a; } X++: [ExtensionOf(ClassStr(BusinessLogic1))] final class BusinessLogic1_Extension { public int getA() { return a; } } |
|
![]() |
#4 |
Участник
|
это запрещённый приём (я так понял, тупо не скомпилируется), но это был вопрос не о решении частной проблемы, а о том, как это СОС технически реализован - так же в рамках ООП через перекрытие в наследниках? вот этот некст - это ж супер()?
ага, понял! спасибо
__________________
Felix nihil admirari |
|
![]() |
#5 |
Banned
|
Цитата:
Это не наследование, это расширение. Другая концепция. Происходит слияние сбоку, а не надстройка сверху. |
|
Теги |
chain of command, extensions |
|
|