Лекция
Привет, Вы узнаете о том , что такое объектная оргия, Разберем основные их виды и особенности использования. Еще будет много подробных примеров и описаний. Для того чтобы лучше понимать что такое объектная оргия , настоятельно рекомендую прочитать все из категории Объектно-ориентированное программирование ООП.
В компьютерном программировании , объектная оргия является ситуацией , в которой объекты недостаточно инкапсулируется с помощью сокрытия информации , что позволяет неограниченный доступ к их внутренностям. Это распространенный сбой (или анти-шаблон ) в объектно-ориентированном дизайне или объектно-ориентированном программировании , и он может привести к увеличению потребностей и проблем в обслуживании и даже к непосильной сложности.
"Объектная оргия" термин в программировании, описывающий типичный анти-шиблон. При объектной оргии объекты недостаточно инкапсулированы и позволяют неограниченный доступ к своим внутренним свойствам. В результате код становится трудно читаемым, потому что становится непонятно, для чего вообще предназначен объект. Интерфейс класса теряет смысл. И изменить такой класс в будущем становится практически невозможно, потому что нельзя быть уверенным, что какая-то часть приложения не обращается напрямую к свойству.
Чаще всего это выглядит как декларация свойств public, а не protected или private. И бывает вызвано "незрелым программированием" - когда программист начинает писать класс, до конца не зная, что он (класс) будет делать.
Как бороться? Проектировать и утверждать интерфейс класса до написания кода.
Результатом объектной оргии в основном является потеря преимуществ инкапсуляции, в том числе:
Инкапсуляцию можно ослабить несколькими способами, в том числе:
friend
классов или функций.Объект также может сделать свои внутренние данные доступными, передав ссылки на них в качестве аргументов в методы или конструкторы других классов, которые могут сохранять ссылки.
Напротив, объекты, содержащие ссылки друг на друга, хотя иногда и описываются как форма объектной оргии, сами по себе не нарушают инкапсуляцию.
Члены могут быть объявлены общедоступными, чтобы избежать дополнительных усилий или синтаксических накладных расходов, связанных с предоставлением им подходящих средств доступа . Это может повысить удобочитаемость класса, но за счет описанных выше последствий.
Для некоторых языков член, предназначенный для чтения другими объектами, можно сделать изменяемым, поскольку в языке нет удобной конструкции для доступа только для чтения.
Объектная оргия может быть симптомом кодирования незрелого анемичного дизайна, когда дизайнер недостаточно проанализировал взаимодействия между объектами. Это также может возникнуть из-за лени или поспешности в реализации дизайна, особенно если программист недостаточно общается с дизайнером, или из-за нежелания пересматривать дизайн при возникновении проблем, что также поощряет многие другие антишаблоны.
Многие программисты рассматривают объекты как анемичные хранилища данных и манипулируют ими, нарушая принципы сокрытия информации , инкапсуляции и проектирования по контрактам .
Как правило, инкапсуляция нарушается, потому что этого требует дизайн других классов и требуется переработка. Если это не так, может быть достаточно перекодировать систему в соответствии с передовой практикой. После того, как интерфейсы будут опубликованы безвозвратно, может быть уже слишком поздно их исправлять.
Данная статья про объектная оргия подтверждают значимость применения современных методик для изучения данных проблем. Надеюсь, что теперь ты понял что такое объектная оргия и для чего все это нужно, а если не понял, или есть замечания, то не стесняйся, пиши или спрашивай в комментариях, с удовольствием отвечу. Для того чтобы глубже понять настоятельно рекомендую изучить всю информацию из категории Объектно-ориентированное программирование ООП
Из статьи мы узнали кратко, но содержательно про объектная оргия
Комментарии
Оставить комментарий
Объектно-ориентированное программирование ООП
Термины: Объектно-ориентированное программирование ООП