Вы можете начать с чего-то действительно простого, такого как все объекты, наследуемые от этого интерфейса или абстрактного класса, где у вас есть метод render (), который выплевывает весь html.Создание html зависит от значения ваших свойств, скажем, меню как набора объектов ссылок, при рендеринге вы создаете все html для этих ссылок.
Продвинувшись еще на один шаг, вы можете начать моделироватьсвойства ваших объектов говорят, что у div есть дочерние элементы, поэтому вы можете разрешить определенным объектам (наследовать от интерфейса IBlockElement) иметь другие объекты в качестве дочерних (интерфейс IInlineElement).когда родительский объект рендерит все дочерние элементы, вызывается метод рендеринга.Скажем, вы выполняете $ page-> render () и все внутренние элементы будут отображаться, выплевывая все ваши html.
Это в основном из моего опыта разработки в .NET Надеюсь, что это имеет смысл