Принцип единственной обязанности

Принцип единственной обязанности

В объектно-ориентированном программировании принцип единственной обязанности обозначает, что каждый объект должен иметь одну обязанность и эта обязанность должна быть полностью инкапсулирована в класс. Все его сервисы должны быть направлены исключительно на обеспечение этой обязанности.

Термин был введён Робертом С. Мартином в одноименной статье как часть его Принципов объектно-ориентированного проектирования, ставших популярными благодаря его книге Быстрая разработка программ. Принципы, примеры, практика [1]. Мартин описал её как основанную на принципе связности, сформулированном Томом ДеМарко в его книге Structured Analysis and Systems Specification[2].

Мартин определяет обязанность как причину изменения и заключает, что класс или модуль должны иметь одну и только одну причину измениться. Например, представьте себе модуль, который составляет и печатает отчёт. Такой модуль может измениться по двум причинам. Во первых, может измениться само содержимое отчёта. Во вторых, может измениться формат отчёта. Оба этих фактора изменяют модуль по разным причинам: в одном случае изменение содержательное, а во втором — косметическое. Принцип единственной обязанности говорит, что оба аспекта этой проблемы на самом деле являются двумя разными обязанностями, и в таком случае должны находиться в разных классах или модулях. Объединение двух сущностей, изменяющихся по разным причинам и в разное время, считается плохим проектным решением.

Причина, почему нужно сохранять направленность класса на единственную цель в том, что это делает класс более здоровым. Что касается приведённого выше примера, если произошло изменение в процессе составления отчёта — есть большая вероятность, что в негодность придёт код, отвечающий за печать, если он является частью того же класса.

Принцип единственной обязанности используется в методологиях проектирования «от обязанности», таких как RDD и URDAD

Использование

SOLID — буква «S» в аббревиатуре обозначает Принцип единственной обязанности (англ. Single responsibility principle)

Источники

  1. Мартин, Роберт. Быстрая разработка программ. Принципы, примеры, практика. — Вильямс, 2004. — ISBN 5845905583
  2. DeMarco, Tom. Structured Analysis and System Specification. — Prentice Hall, 1979. — ISBN 0138543801

Ссылки


Wikimedia Foundation. 2010.

Игры ⚽ Поможем сделать НИР

Полезное


Смотреть что такое "Принцип единственной обязанности" в других словарях:

  • SOLID (объектно-ориентированное программирование) — У этого термина существуют и другие значения, см. Solid. SOLID это аббревиатура пяти основных принципов дизайна классов в объектно ориентированном проектировании  Single responsibility, Open closed, Liskov substitution, Interface segregation …   Википедия

  • Медицина — I Медицина Медицина система научных знаний и практической деятельности, целями которой являются укрепление и сохранение здоровья, продление жизни людей, предупреждение и лечение болезней человека. Для выполнения этих задач М. изучает строение и… …   Медицинская энциклопедия

  • Феодализм — Содержание [О Ф. во Франции см. соотв. ст.]. I. Сущность Ф. и его происхождение. II. Ф. в Италии. III. Ф. в Германии. IV. Ф. в Англии. V. Ф. на Пиренейском полуострове. VI. Ф. в Чехии и Моравии. VII. Ф. в Польше. VIII. Ф. в России. IX. Ф. в… …   Энциклопедический словарь Ф.А. Брокгауза и И.А. Ефрона

  • Пушкин, Александр Сергеевич — — родился 26 мая 1799 г. в Москве, на Немецкой улице в доме Скворцова; умер 29 января 1837 г. в Петербурге. Со стороны отца Пушкин принадлежал к старинному дворянскому роду, происходившему, по сказанию родословных, от выходца "из… …   Большая биографическая энциклопедия

  • Рим город* — Содержание: I. Р. Современный; II. История города Р.; III. Римская история до падения западной Р. империи; IV. Римское право. I. Рим (Roma) столица Итальянского королевства, на реке Тибре, в так называемой Римской Кампанье, под 41°53 54 северной… …   Энциклопедический словарь Ф.А. Брокгауза и И.А. Ефрона

  • Рим, город — Содержание: I. Р. Современный; II. История города Р.; III. Римская история до падения западной Р. империи; IV. Римское право. I. Рим (Roma) столица Итальянского королевства, на реке Тибре, в так называемой Римской Кампанье, под 41°53 54 северной… …   Энциклопедический словарь Ф.А. Брокгауза и И.А. Ефрона

  • Планк, Макс — Эта статья  о немецком физике. Другие значения термина в заглавии статьи см. на Планк (значения). Макс Планк Max Planck …   Википедия

  • ВИЗАНТИЙСКАЯ ИМПЕРИЯ. ЧАСТЬ II — Право и Церковь Рецепция римского права в Византии. Понятие византийского права Правовая культура В. и. с начала ее истории вплоть до падения К поля была основана на рецепции классического римского права. Источники рим. права подразделялись на… …   Православная энциклопедия

  • Страхование — I Теория С. Страховая политика. История страхования. История страхования в России. Синдикатное соглашение страховых от огня обществ. Виды страхования. Страхование от огня. Страхование от градобития. Страхование скота. Транспортное страхование.… …   Энциклопедический словарь Ф.А. Брокгауза и И.А. Ефрона

  • Конституция — (Constitution) Конституция это основной закон государства, закрепляющий основы политической, экономической и правовой системы страны История конституции, классификация конституций, структура и содержание конституции, функции конституции,… …   Энциклопедия инвестора


Поделиться ссылкой на выделенное

Прямая ссылка:
Нажмите правой клавишей мыши и выберите «Копировать ссылку»