Йдеться про наявність однієї унікальної роли .
Кожен клас повинен бути поновлений назвою ролей. Насправді роль - це (набір) дієслова, пов'язаного з контекстом.
Наприклад :
Файл забезпечує доступ до файлу. FileManager керує файловими об'єктами.
Дані про вміщення ресурсу для одного ресурсу з файлу. ResourceManager утримує та надає всі ресурси.
Тут ви бачите, що деякі дієслова типу "керувати" мають на увазі набір інших дієслів. Тільки дієслова краще розглядати як функції, ніж класи, більшість часу. Якщо дієслово передбачає занадто багато дій, які мають власний спільний контекст, то це має бути клас сам по собі.
Отже, ідея полягає лише в тому, щоб ви мали просте уявлення про те, що робить клас, визначаючи унікальну роль, яка може бути агрегатом декількох підролей (виконуються об'єктами-членами або іншими об'єктами).
Я часто будую класи менеджерів, у яких є кілька різних інших класів. Як Фабрика, Реєстр тощо. Дивіться клас менеджера, як якийсь начальник групи, керівник оркестру, який спрямовує інших людей працювати разом для досягнення ідеї високого рівня. Він має одну роль, але передбачає роботу з іншими унікальними ролями всередині. Ви також можете бачити це як організація компанії: генеральний директор не є продуктивним на чистому рівні продуктивності, але якщо його там немає, то нічого спільно працювати не може. Ось його роль.
Створюючи дизайн, визначте унікальні ролі. І для кожної ролі ще раз перевірте, чи не можна її вирішити в кількох інших ролях. Таким чином, якщо вам потрібно просто змінити спосіб, як ваш менеджер будує об'єкти, просто змініть Фабрику та йдіть з думкою про мир.