Jump to content

Бог возражает

В объектно-ориентированном программировании объект -бог (иногда также называемый всеведущим или всезнающим объектом ) — это объект , который ссылается на большое количество различных типов, имеет слишком много несвязанных или неклассифицированных методов или некоторую комбинацию того и другого. [1] Объект god — это пример антишаблона и запаха кода . [2]

Характеристики

[ редактировать ]

Распространенный метод программирования — разделить большую проблему на несколько более мелких ( стратегия «разделяй и властвуй» ) и создать решения для каждой из них. Как только мелкие проблемы решены, большая проблема в целом решена. Поэтому данному объекту для небольшой задачи нужно знать только о себе. Аналогично, существует только один набор проблем, которые объект должен решить: свои собственные проблемы. Это также соответствует принципу единой ответственности .

Напротив, программа, использующая объект бога, не следует этому подходу. Большая часть общей функциональности такой программы закодирована в одном «всезнающем» объекте, который хранит большую часть информации обо всей программе, а также предоставляет большинство методов для манипулирования этими данными. Поскольку этот объект содержит так много данных и требует так много методов, его роль в программе становится богоподобной (всезнающей и всеохватывающей). Вместо того, чтобы объекты программы напрямую общались между собой, другие объекты внутри программы полагаются на один объект-бог для получения большей части своей информации и взаимодействия. Поскольку этот объект тесно связан с большей частью остального кода (ссылается на него), его обслуживание становится более трудным, чем при более равномерно разделенном дизайне программирования. Изменения, внесенные в объект в интересах одной процедуры, могут иметь волновой эффект на другие несвязанные функции.

Объект-бог — это объектно-ориентированный аналог отсутствия использования подпрограмм в процедурных языках программирования или использования слишком большого количества глобальных переменных для хранения информации о состоянии .

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

См. также

[ редактировать ]
  1. ^ Риэль, Артур Дж. (1996). «Глава 3: Топологии ориентированных на действие и объектно-ориентированных приложений». Эвристика объектно-ориентированного проектирования . Бостон, Массачусетс: Аддисон-Уэсли. ISBN  0-201-63385-Х . 3.2: Не создавайте в своей системе божественные классы/объекты. Будьте очень подозрительны к абстракции, имя которой содержит Драйвер, Менеджер, Система или Подсистема.
  2. ^ Контьери, Максимилиано (28 ноября 2020 г.). «Код запаха 14 — Объекты Бога» . Середина . Проверено 6 марта 2023 г.
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 5765c330cf4497bed80669603b9d9e0d__1694006340
URL1:https://arc.ask3.ru/arc/aa/57/0d/5765c330cf4497bed80669603b9d9e0d.html
Заголовок, (Title) документа по адресу, URL1:
God object - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)