Книга: Основы объектно-ориентированного программирования
Ограниченная универсальность (Constrained genericity)
Ограниченная универсальность (Constrained genericity)
Сочетание универсальности и наследования дает полезную технику - ограниченную универсальность (constrained genericity). Теперь вы можете определить класс с родовым параметром, представляющим не произвольный тип, а лишь тип, являющийся потомком некоторого класса.
Родовой класс SORTABLE_LIST описывает списки; он содержит компонент sort, сортирующий элементы списка в соответствии с заданным отношением порядка. Параметр этого родового класса задает тип элементов списка. Но этот тип не может быть произвольным: он должен поддерживать отношение порядка. Фактический родовой параметр должен быть потомком библиотечного класса COMPARABLE, описывающего объекты, снабженные отношением порядка. Ограниченная универсальность позволяет объявить наш родовой класс следующим образом: SORTABLE_LIST [G -" COMPARABLE] .
Механизм универсальности должен поддерживать форму ограниченной универсальности.
- Бесшовность (seamlessness)
- Классы
- Утверждения (Assertions)
- Классы как модули
- Классы как типы
- Вычисления, основанные на компонентах
- Скрытие информации (information hiding)
- Обработка исключений (Exception handling)
- Статическая типизация (static typing)
- Универсальность (genericity)
- Единичное наследование (single inheritance)
- Множественное наследование (Multiple inheritance)
- Дублируемое наследование (Repeated inheritance)
- Ограниченная универсальность (Constrained genericity)
- Переопределение (redefinition)
- Полиморфизм
- Динамическое связывание
- Выяснение типа объекта в период выполнения
- Отложенные (deferred) свойства и классы
- Управление памятью (memory management) и сборка мусора (garbage collection)
- Универсальность (genericity)
- Ограниченная универсальность
- Универсализация (Genericity)
- Перегрузка и универсальность
- У10.1 Ограниченная универсализация
- Дублируемое наследование и универсальность
- И снова неограниченная универсальность
- Однократные функции, закрепление и универсальность
- Ограниченная ответственность
- Классы