|
![]() |
#1 |
Участник
|
Цитата:
можешь вкратце набросать бриллиантово-чистый пример? Цитата:
Цитата:
Сообщение от mazzy
![]() впрочем, я уже создавал отдельную ветку:
Что с логикой у людей на форуме? Вроде программисты. Вроде код и ТЗ должны читать и писать. я чувствую, эмоции тебя переполняют - поверь, меня тоже. но прошу, давай отвлечёмся от критики чистого разума и морального закона внутри нас и вернёмся к нашим баранам.
__________________
Felix nihil admirari |
|
|
За это сообщение автора поблагодарили: Link (1). |
![]() |
#2 |
Участник
|
Цитата:
Я бы изо всех сил постарался изменить формулировку задачи. Я бы постарался донести последствия силового решения. Если бы мои уговоры не сработали, то практическое решение было бы похоже на то, что приведено в блоге - стиль "сломать через колено". Но мне чертовски не нравится что система вынуждает писать именно так. Мне чертовски не нравится, что через несколько лет придется с последствиями решений, которые были сделаны в таком стиле. А еще больше мне не нравится, систему сейчас делают такой совершенно конкретные люди. И они это делают точно не со зла. Последний раз редактировалось mazzy; 04.10.2017 в 16:24. |
|
![]() |
#3 |
Участник
|
Цитата:
как смотришь на то, чтоб убрать весь "эмоциональный шум" из этой ветки? так чтоб читатели могли выцепить суть, не отвлекаясь на "куда катится этот мир".
__________________
Felix nihil admirari |
|
![]() |
#4 |
Участник
|
это не одобрение )
Цитата:
как смотришь на то, чтобы создать пост, в котором ты сделаешь выжимку, которую считаешь нужной, чтобы читатели могли выцепить суть? с удовольствием добавлю ссылку на твой пост. дело в том, что я не вижу никакого эмоционального шума в этой ветке. я вижу обсуждение на нескольких уровнях восприятия для разных категорий читателей. |
|
![]() |
#5 |
Участник
|
Цитата:
Сообщение от mazzy
![]() это не одобрение )
удалять документы? ))))) как смотришь на то, чтобы создать пост, в котором ты сделаешь выжимку, которую считаешь нужной, чтобы читатели могли выцепить суть? с удовольствием добавлю ссылку на твой пост. дело в том, что я не вижу никакого эмоционального шума в этой ветке. я вижу обсуждение на нескольких уровнях восприятия для разных категорий читателей. я именно такой пост в оригинале и создал - с выжимкой. полностью согласен с вашими оценками о том, что в идеальном мире за такое бы сразу в адъ. но мы уже в аду.
__________________
Felix nihil admirari |
|
![]() |
#6 |
Banned
|
Цитата:
standard method() post()>Restore В принципе это самый что ни на есть workaround. Который великолепен если его воспринимать именно как workaround. А есть какой-то способ избежать вызова "standard method()" или подменить его? И интересно почему, если это в любом случае ад, не хотят давать возможность такого полного перекрытия? Ведь для этого не нужен именно overlay сверху, можно overlay и сбоку. Как понимаю ce.CancelSuperCall() помогает избежать вызов двух форм и добавили это как фикс, а не как часть общего дизайна. |
|
![]() |
#7 |
Участник
|
__________________
Felix nihil admirari |
|
![]() |
#8 |
Участник
|
Цитата:
Предположим, у вас есть метод X класса Y у метода есть его публичный интерфейс:
И есть реализация (например он может изменить приватную переменную невидимую снаружи). Если расширения смогут отменять вызов какого угодно метода, то состояние объекта может быть испорчено. Так как ваше расширение не может учесть внутреннее состояние объекта будущих версий. Например в версии 1 вы написали расширение отменяющее вызов метода x целиком и как-то сымитировали его работу без того, что нам надо. И есть реализация (например он может изменить приватную переменную невидимую снаружи). Если расширения смогут отменять вызов какого угодно метода, то состояние объекта может быть испорчено. Так как ваше расширение не может учесть внутреннее состояние объекта будущих версий. Например в версии 1 вы написали расширение отменяющее вызов метода x целиком и как-то сымитировали его работу через публичный интерфейс. В версии 1 sp 1 внутрь добавили кеш, которое ваше расширение обновить не может (не только потому, что оно не может модифицировать приватные поля, но и потому, что оно написано для версии 1, про sp1 не знает) в результате остальные методы класса берут данные из кеша устаревшие. Собственно, если сделать подмену произвольного метода, то это и будет практически оверлееринг, но без удобного способа смотреть изменения. Последний раз редактировалось belugin; 04.10.2017 в 21:23. |
|
![]() |
#9 |
Участник
|
Цитата:
![]() |
|
|
За это сообщение автора поблагодарили: ax_mct (11). |
![]() |
#10 |
Участник
|
Цитата:
X++: [ExtensionOf(classStr(Class1))] final public class Class1_Extension { public void run() { try { if (true) { throw Exception::Error; } next run(); } catch (Exception::Error) { info('Done!'); } } } ![]() Я так и не понял из ответов выше, зачем все это если есть CoC или просто автор еще про нее не узнал? Последний раз редактировалось skuull; 04.10.2017 в 22:19. |
|
|
За это сообщение автора поблагодарили: kashperuk (5), EVGL (10), trud (6), Link (1). |
![]() |
#11 |
Участник
|
Цитата:
Сообщение от mazzy
![]() Но мне чертовски не нравится что система вынуждает писать именно так.
Мне чертовски не нравится, что через несколько лет придется с последствиями решений, которые были сделаны в таком стиле. А еще больше мне не нравится, систему сейчас делают такой совершенно конкретные люди. И они это делают точно не со зла.
__________________
Felix nihil admirari |
|
![]() |
#12 |
Участник
|
все - не хорошее слово.
как только появляется слово все - жди логических ошибок ))) http://coub.com/view/vqeal |
|
![]() |
#13 |
Участник
|
и обрати внимание на то, что сказал Макс Белугин
D365: passing through public method by means of Pre- and Post-event handlers это штатные способы, ожидаемые и предполагаемые Майкрософтом. |
|
![]() |
#14 |
Участник
|
Цитата:
Сообщение от mazzy
![]() и обрати внимание на то, что сказал Макс Белугин
D365: passing through public method by means of Pre- and Post-event handlers это штатные способы, ожидаемые и предполагаемые Майкрософтом. поправь меня, если я неправ, но именно это я и сделал: Воспользоваться какой-то точкой расширения для убирания функционала (не участка кода)стандартный код остался на месте, и главное, любые будущие его изменения нас не колышат.
__________________
Felix nihil admirari |
|
Теги |
chain of command, extensions |
|
|