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