Первое, с чем сталкивается пользователь продукта – это его интерфейс. И не важно, как и чем он представлен. Это может быть пользовательский графический интерфейс, публичный интерфейс класса, API интерфейс службы. Как бы то ни было, худшее, что может сделать разработчик – это реализовать обманывающий интерфейс. Когда ты вызываешь метод Exist у класса File, то скорее всего, ты ожидаешь проверку на существование какого-либо файла по его пути, что логично. Но внезапно, оказывается, что эта команда не проверяет, а создает новый файл. Вот это поворот! На надо так… Что я хочу сказать, что любой создаваемый тобой интерфейс должен соответствовать как минимум двум правилам. Во-первых, он должен быть ожидаемым. То есть, он должен делать то, что от него будет ожидать среднестатистический пользователь. Во-вторых, он должен соответствовать общепринятым стандартам. Если большинство других продуктов использует один и тот же формат – не нужно отличаться от них без крайней необходимости. Если все библио