OpenU.Ru
Обобщаемый элемент, у которого нет прямых потомков. Чтобы такой элемент можно
было использовать, он должен быть конкретным (полностью реализованным).
См. abstract, concrete.
Семантика
Если у элемента есть листовое свойство, значит, он должен быть листовым. Если
в модели существуют прямые потомки такого элемента, значит, она плохо согласована.
Назначение такого класса состоит в гарантии неизменности класса (например, когда
поведение класса должно быть зафиксировано максимально надежно). Объявление
класса как листового допускает компиляцию отдельных частей системы, гарантируя,
что методы не будут подменяться в производных классах, и тем самым, облегчая
процесс встраивания кода метода.
Элемент, у которого листовое свойство ложно, на самом деле может быть листом,
однако если впоследствии модель будет изменена, у него появятся прямые потомки,
В общем, ограничение "leaf" не является фундаментальным семантическим
свойством.