Почему мы не можем использовать утверждение для открытых методов? - PullRequest
22 голосов
/ 23 марта 2011

Почему мы не можем использовать утверждение для открытых методов?

Я где-то прочитал

"Утверждение неприемлемо в открытых методах, потому что метод гарантирует, что он всегда будет принудительно применятьсяпроверка аргумента. Открытый метод должен проверить свои аргументы, включены ли утверждения. Кроме того, конструкция assert не выдает исключение указанного типа. Он может выдавать только AssertionError ".

Так, разве это не применимо и к частному методу?
Я не совсем понял вышеприведенное утверждение

Ответы [ 11 ]

0 голосов
/ 23 марта 2011

Идея в том, что вы не знаете, кто будет использовать ваш публичный метод.Поэтому вы должны защищаться от неправильного использования с помощью обычных проверок.

С другой стороны, частные методы должны использоваться исключительно разработчиками в вашей текущей команде, поэтому проверки не являются (тем) обязательными (но все же рекомендованы ИМХО).

Так что для проверки правильности аргументов в частных методах должно быть достаточно утверждений.

...