Вопрос

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

Должны ли у вас быть свойства, которые вы заполняете, или использовать параметризованные вложенные файлы для загрузки информации в ваши элементы управления?

Отчасти мой страх перед использованием paramteter связан с тем фактом, что я не могу быть уверен, что все будет заполнено.

Каково основное правило использования интерфейсов?Я никогда ничего подобного не создавал.И должен ли я попробовать это, или остаться с "дополнительная нагрузка"?

Это было полезно?

Решение

Я не уверен, что интерфейсы вам здесь сильно помогут.Насколько я понимаю, вы разбиваете страницу на набор "составных" пользовательских элементов управления, которые содержат другие элементы управления, и вы хотите решить, использовать ли свойства для установки значений.

Я предполагаю, что это действительно зависит от того, как спроектированы пользовательские элементы управления и добавляются ли они динамически на страницу и т.д. (один из возможных сценариев).У меня есть личные предпочтения указывать данные в конструкторе или использовать фабричный метод для создания элементов управления.Я беру на себя ответственность при создании за то, чтобы убедиться, что все настроено.Мой опыт работы со свойствами показывает, что иногда я забываю что-то установить и не осознаю свою ошибку.Ваша точка зрения о настройке свойств или использовании вложенного модуля и обо всем, что заполняется, не имеет для меня большого смысла.Если у вас есть какая-то зависимость и вам нужно загрузить что-то еще, то это может произойти независимо от того, является ли это свойством или вложенным.

Я бы обратился к любой книге по VB.NET/C#/OOP, чтобы увидеть синтаксис интерфейсов.Интерфейсы в основном описывают контракт для класса.Если у вас есть классы A и B, и оба реализуют интерфейс с именем iTime, то оба будут предоставлять все методы, определенные в iTime.Они все еще могут добавлять свои собственные методы, но они должны, как минимум, включать реализацию методов iTime (например.у нас могли бы быть GetDate(), getCurrentTime() в качестве методов в iTime).Интерфейс не сообщает классу A или B, как должны работать эти методы - только их имя, параметры и возвращаемый тип.Посмотрите "наследование" в книге по ООП для получения дополнительной информации о том, чем наследование интерфейсов отличается от наследования реализации.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top