God Object
Wikipedia: http://en.wikipedia.org/wiki/God_object
“God Object” – это объект, который знает слишком много или делает слишком много.
Программисты создают Объект-Бога, когда не могут (не хотят) нормально провести объектно-ориентированную композицию. Объекта-Бога невозможно покрыть юнит-тестами, потому что у него огромное количество состояний и «завязок» на внешние сущности. Нельзя проверить какой-то один аспект его функциональности, потому что они намертво связаны с остальными.
В результате, однажды никто не сможет понять, как работает такой объект. Попытки дописать в него новый функционал приведут к лавине багов в старом коде, попытки их починить приведут к новым багам.
Решение – покрывать юнит-тестами по чуть-чуть и делать рефакторинг. Желательно использовать для этого автоматизированные средства, такие как JetBrains ReSharper.
Big Hairy Object
Wikipedia: http://en.wikipedia.org/wiki/Big_Hairy_Object
Почти то же самое, но с огромным числом свойств и методов, напиханных «абы как», безструктурно.
См также:
Другие антипаттерны: http://en.wikipedia.org/wiki/Anti-pattern
Комментариев нет:
Отправить комментарий