Речь идет об одной уникальной роли .
Каждый класс должен быть возобновлен именем роли. На самом деле роль - это (набор) глаголов, связанных с контекстом.
Например :
Файл обеспечивает доступ к файлу. FileManager управляет объектами File.
Ресурс содержит данные для одного ресурса из файла. ResourceManager держать и предоставлять все ресурсы.
Здесь вы можете увидеть, что некоторые глаголы типа «управлять» подразумевают набор других глаголов. В большинстве случаев одни глаголы лучше воспринимать как функции, чем классы. Если глагол подразумевает слишком много действий, которые имеют свой общий контекст, то это должен быть класс сам по себе.
Итак, идея состоит лишь в том, чтобы дать вам простое представление о том, что делает класс, определив уникальную роль, которая может быть совокупностью нескольких под ролей (выполняемых объектами-членами или другими объектами).
Я часто строю классы Manager, в которых есть несколько других классов. Например, Фабрика, Реестр и т. Д. Посмотрите на класс Менеджера, как на своего рода руководителя группы, руководителя оркестра, который направляет другие народы работать вместе для достижения идеи высокого уровня. У него одна роль, но подразумевается работа с другими уникальными ролями внутри. Вы также можете увидеть, как организована компания: генеральный директор не является продуктивным на чистом уровне производительности, но если его там нет, то ничто не может работать правильно вместе. Это его роль.
Когда вы разрабатываете, определяйте уникальные роли. И для каждой роли, снова посмотрите, нельзя ли ее сократить в нескольких других ролях. Таким образом, если вам нужно просто изменить способ, которым ваш Менеджер строит объекты, просто измените Фабрику и действуйте спокойно.