Интерфейсы
Нелегальное поведение
Создание интерфейса предоставляющего возможность перевода внутреннего состояния объекта в нелегальное. Например интерфейс позволяет выставить статус заказа пользователя из "Не подтвержден" сразу в "Доставлен".
Опасное поведение
Интерфейс с опасным поведение подразумевает, что для достижения корректного внутреннего состояния объекта, требуется вызов более одного внешнего метода объекта, как минимум один из которых переводит объект в нелегальное состояние. По факту нарушается граница согласованности вокруг объекта. Например объект имеет две внутренних переменных содержащих денежный эквивалент. С одной из них списываются деньги, а на другую зачисляется эта сумма, однако делается это двумя внешними методами. Таким образом в определенный момент времени внутреннее состояние находится в несогласованном состоянии. Более того, внешний пользователь должен быть осведомлен о внутреннем алгоритме объекта и его инвариантах.
Неподходящее поведение
Интерфейсом с неподходящим поведение называется интерфейс содержащий поведение не относящееся к классу. Например вычисление промежутка времени в классе клиента.
Недостаточно проработанное поведение
Поведение при котором отсутствует возможность выполнить перевод в необходимое поведение. Например класс Заказ переведенный в статус подтвержден, однако внезапно оказалось, что на счету у пользователя недостаточно средств и требуется перевести состояние из статуса подтвержден в статус не подтвержден, однако этого нельзя совершить через внешний интерфейс объекта.
Неуклюжее поведение
Неуклюжее поведение подразумевает, что требуется несколько вызовов методов объекта, для перевода в нужное состояние. Это похоже на опасное поведение, но отличается тем, что ни один из методов не переводит объект к нелегальное состояние. Такое случается при оверинжиниринге, проектировщик, не зная будущего, разделяет одно бизнес действие на два метода, которые потенциально могут когда нибудь понадобиться в отдельности. Таким образом клиент объекта вынужден вызывать несколько методов для достижения требуемого состояния. Это выносит внутренний алгоритм наружу. А предполагаемое разделение скорее всего так и не понадобится.
Реплицированное поведение
Интерфейс предоставляет несколько различных методов, для выполнения перевода в одно и тоже состояние. Например метод повернуть фигуру влево, фигуру вправо и повернуть фигуру на указанное количество градусов. Такое поведение не всегда означает негативные последствия, однако в большинстве случаев требует поддержания всех возможных методов и повышает сложность интерфейса.