* Delegation/Делегирование (перепоручение): Передача ответственности за выполнение связанному объекту
* Encapsulation or Information hiding/Инкапсуляция или Сокрытие данных: Предоставляет косвенные методы манипулирования данными объекта или класса, вместо манипуляции напрямую
* Event Channel/Канал событий: Производит, выявляет, использует и реагирует на события.
* Exceptions/Исключения: Поддерживает языковой механизм исключений
* Functional design/Функциональный дизайн: Каждый класс программы имеет только одну функциональность
* Immutable/Неизменяемый: Объект, который нельзя изменить после его создания
* Inheritance or subclassing: Наследует методы от родительского класса для повторного использования кода
* Interface/Интерфейс: Обеспечивает доступ к методам других классов
* Marker interface: Позволяет получить информацию об объектах во времени исполнения
* Property Container: Посредник между полями и методами класса