![]() |
#35 |
Участник
|
Цитата:
Когда я добавляю строчку при оверлееринге, я могу там сделать все что угодно. Часть из того, что я могу сделать там может не только нарушить работу в рантайме но и компиляцию при апгрейде (допустим в версии1 у нас не было переменной с именем i и мы добавили int i в конец, или, наборот, была какая-то переменная и мы ее использовали ). Далее, когда вы добавляете строчку в конец это означает что она должно исполнятся после остальных строчек(в том числе и дописанных кем-то другими) таким образом порядок исполнения гарантирован , в случае расширений система знает, что порядок исполнения негарантирован и может соединить расширения от разных производителей в цепочку любым способом. Пользуясь метафорой контракта - есть контракт между компонентом и расширением - производитель компонента может понять что он не может менять, чтобы расширения не сломались, производитель расширения понимает, что является интерфейсом, а что побочным эффектом. И это хоть как-то формально контроллируется. |
|