Ролево-ориентированное программирование как форма компьютерного программирования направлено на выражение вещей в терминах, которые аналогичны человеческому концептуальному пониманию мира . Это должно сделать программы более простыми для понимания и поддержки. [ необходима цитата ]
Основная идея ролевого программирования заключается в том, что люди мыслят в терминах ролей . Это утверждение часто подкрепляется примерами социальных отношений . Например, студент, посещающий занятие, и тот же студент на вечеринке — это один и тот же человек, но этот человек играет две разные роли. В частности, взаимодействие этого человека с внешним миром зависит от его текущей роли. Роли обычно имеют общие черты, например, внутренние свойства личности. Такое совместное использование свойств часто осуществляется с помощью механизма делегирования .
В старой литературе и в области баз данных , кажется [ оригинальное исследование? ] , что мало внимания уделялось контексту, в котором роли взаимодействуют друг с другом. Такой контекст устанавливается в новых ролевых и аспектно-ориентированных языках программирования, таких как Object Teams. Сравните использование «роли» как «набора программ (служб), которые позволяют серверу выполнять определенные функции для пользователей или компьютеров в сети» в жаргоне Windows Server . [1]
Многие [ квантифицирующие ] исследователи утверждали преимущества ролей в моделировании и реализации. Роли позволяют объектам развиваться с течением времени, они обеспечивают независимые и одновременно существующие представления (интерфейсы) объекта, объясняя различные контексты объекта и разделяя интересы . Обычно роли являются естественным элементом ежедневного формирования человеческих концепций. Роли в языках программирования позволяют объектам иметь изменяющиеся интерфейсы, как мы видим в реальной жизни - вещи меняются со временем, используются по-разному в разных контекстах и т. д.
[...] роль сервера — это набор программ (служб), которые позволяют серверу выполнять определенные функции для пользователей или компьютеров в сети.