Как я могу исправить SNIMissingWarning?

Не имея возможности обосновать это с помощью конусов цитат из CS (я сам преподаю), я всегда придерживался мантры «Примите наименее производные, верните наиболее производные», когда разрабатываете классы, и он стоял я хорошо на протяжении многих лет.

Я предполагаю, что это означает, что с точки зрения интерфейса или конкретного возврата мы хотим, чтобы, если вы пытаетесь уменьшить зависимости и / или отделить, возврат интерфейса обычно более полезен. Однако, если конкретный класс реализует больше , чем этот интерфейс, обычно более полезным для вызывающих пользователей вашего метода является получение конкретного класса назад (т. Е. «Наиболее производный»), а не ограничивать их подмножество функциональности возвращаемого объекта - если вам действительно не нужно , чтобы ограничить их. Опять же, вы можете просто увеличить охват интерфейса. Никаких ограничений, подобных этому, я сравниваю с бездумным уплотнением классов; никогда не знаешь. Чтобы немного рассказать о первой части этой мантры (для других читателей), принятие наименее полученного также дает максимальную гибкость для вызывающих вас методов.

-Oisin

0
задан H. Desane 28 February 2019 в 11:15
поделиться