Структура класса
Каждый класс должен соответствовать хорошо определенной абстракции данных.
Подход Списка Закупок: если компонент потенциально полезен и согласуется с абстракцией данных, добавьте его.
Классы, предоставляющие льготы: связанная группа полезных свойств (например множество констант).
Активные структуры данных (объекты как абстрактные машины).
Ключевым решением является задание статуса доступа компонентов: закрытых или экспортируемых.
Используйте выборочный экспорт для группы тесно связанных классов: LINKED_LIST, LINKABLE.
Обновление необъектного ПО: инкапсулируйте абстракции в классы (примером является библиотека Math).