Существуют определенные функции или поля, которые иногда необходимо сохранять при расширении фреймворков.Давайте возьмем простой пример.Если у нас есть Животное с именем и способностью говорить (да, школьный пример, но со мной голый), то все, что является животным, должно иметь эти вещи.Так, скажем, у нас есть кошка, очевидно, что кошка не говорит то же самое, что и собака, поэтому оба из них обладают способностью говорить () и дают 2 разных результата.
В вашем случае это также делаетдля расширяемых и взаимозаменяемых систем, так что вы можете менять слои без необходимости перезаписывать большие части кода (иногда вам даже не нужно ничего менять).