Хотя я могу не согласиться с соглашением об именах, на практике это имеет смысл, но на первом уровне у вас есть определение интерфейса, который необходимо реализовать. Не предоставляя ему никакой функциональности, он может быть реализован так, как вы хотите, никаких предположений не делается. В производном классе «AbstractView», как его называет О'Рейли (согласно вашему описанию), вероятно, разумным образом реализуются наиболее распространенные функции, но остается место для специализации. Некоторые инструменты обычно идут на шаг впереди, а затем дают простую полнофункциональную реализацию рассматриваемого класса.
Редактировать
Посмотрев на пример того, что Ксентил, я увидел еще одну причину такого разделения: AbstractView
- это не , а просто , а также Observer
. Таким образом, еще одна причина отделить базовую реализацию от Интерфейса состоит в том, чтобы не допустить реализации другой реализации интерфейса.
В общем, кажется, что они определяют абстрактные интерфейсы, которые могут быть составлены для классов более высокого порядка. Но интерфейс не загрязнен
- реализация, и из этого предположения о функциональности
- другой интерфейс
Таким образом, интерфейс View
может использоваться без необходимости быть Observer
и наоборот.
Кроме того, с языковой точки зрения, поскольку 'View' объявляет 'интерфейс' в Actionscript, он не может реализовывать какие-либо функции, он может содержать только определения, см. Adobe Docs . Другие языки, такие как c ++, не имеют ключевого слова interface
и поэтому будут запускать другие подходы.
При разработке, если вы не применяете очень строгий подход, вы не можете пойти по этому пути, если вы не разрабатываете библиотеку много раз, есть только один класс, который будет реализовывать определенный интерфейс, у вас может даже не быть абстрактного интерфейса как показано здесь, но только конкретный класс. В конце концов, когда вам понадобится вторая или третья реализация объекта того же типа, вы извлечете интерфейс, вы можете смешать в нем некоторую реализацию или нет. Но они пытаются показать вам хорошие практики, чтобы, возможно, использовать их в демонстрационных целях.
Имеет ли это немного больше смысла?