Вопросы с тегом «interfaces»

30
Понимание «программирования для интерфейса»

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

30
Почему .compareTo () в интерфейсе, а .equals () в классе в Java?

Я хочу знать, почему интерфейс .compareTo()находится в Comparableинтерфейсе, а метод like .equals- в Objectклассе. Мне кажется произвольным, почему такой метод .compareTo()уже не в Objectклассе. Чтобы использовать .compareTo(), вы реализуете Comparableинтерфейс и реализуете .compareTo()метод для...

30
Интерфейсы на абстрактном классе

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

30
Лучше иметь 2 метода с ясным значением или только 1 метод двойного использования?

Чтобы упростить интерфейс, лучше просто не иметь getBalance()метод? Переход 0к charge(float c);тому же результату даст: public class Client { private float bal; float getBalance() { return bal; } float charge(float c) { bal -= c; return bal; } } Может быть, сделать заметку в javadoc? Или просто...

29
Наименование интерфейса: префикс 'Can-' vs суффикс '-Able'

Обычно в качестве суффикса для интерфейсов используется «-able», например Сериализуемый Печатный Enumerable Питьевой Shootable Вращающийся Я думал, что «может» может быть лучше, потому что это может быть более наглядным. Да, это более многословно, и это добавляет шум к имени интерфейса. В...

29
Объявление интерфейса в том же файле, что и базовый класс, это хорошая практика?

Чтобы быть взаимозаменяемыми и тестируемыми, обычно сервисы с логикой должны иметь интерфейс, например public class FooService: IFooService { ... } Что касается дизайна, я согласен с этим, но одна вещь, которая беспокоит меня при таком подходе, заключается в том, что для одного сервиса вам нужно...

28
Как называется следующий (анти) шаблон? Каковы его преимущества и недостатки?

За последние несколько месяцев я несколько раз спотыкался о следующей технике / схеме. Тем не менее, я не могу найти конкретное имя, и я не уверен на 100% во всех его преимуществах и недостатках. Шаблон идет следующим образом: В интерфейсе Java набор общих методов определяется как обычно. Однако...

27
Реализация чистых абстрактных классов и интерфейсов

Хотя это не является обязательным в стандарте C ++, похоже, что GCC, например, реализует родительские классы, в том числе чисто абстрактные, путем включения указателя на v-таблицу для этого абстрактного класса в каждом экземпляре рассматриваемого класса. , Естественно, это увеличивает размер...

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

Задача состоит в том, чтобы настроить аппаратную часть устройства, в соответствии с некоторой входной спецификацией. Это должно быть достигнуто следующим образом: 1) Соберите информацию о конфигурации. Это может случиться в разное время и в разных местах. Например, модуль A и модуль B могут...

22
Как вы развиваете и версии интерфейса?

Скажем, у вас есть интерфейс IFoo: public interface IFoo { void Bar(string s); int Quux(object o); } Во второй версии API вы должны добавить метод Glargк этому интерфейсу. Как это сделать, не нарушая существующих пользователей API и не поддерживая обратную совместимость? Это в основном нацелено на...

20
Дженерикс против общего интерфейса?

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

20
Кто расширяет интерфейсы? И почему?

AFAIK, мой класс extendsродительских классов и implementsинтерфейсов. Но я сталкиваюсь с ситуацией, когда я не могу использовать implements SomeInterface. Это объявление универсальных типов. Например: public interface CallsForGrow {...} public class GrowingArrayList <T implements...

17
Как лучше организовать файлы классов и интерфейсов?

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

17
Должен ли когда-либо разработчик внешнего интерфейса указывать формат JSON для внутренних разработчиков?

Я беру фронтальную роль в проекте. Должен ли я указать для моих внутренних партнеров по команде точный формат JSON, который их PHP возвращает в мой JavaScript? Например, я должен сказать им, что они должны использовать формат, подобный описанному здесь: Правильный способ структурирования JSON для...

17
Принцип наименьшего удивления (POLA) и интерфейсы

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

17
Что автор подразумевает под приведением ссылки на интерфейс к любой реализации?

Я в настоящее время в процессе попытки мастер C #, так что я читаю адаптивный код через C # по Gary McLean Hall . Он пишет о шаблонах и анти-шаблонах. В части реализации и интерфейсов он пишет следующее: Разработчики, которые плохо знакомы с концепцией программирования интерфейсов, часто испытывают...

17
Когда использовать интерфейсы (модульное тестирование, IoC?)

Я подозреваю, что допустил ошибку школьника и ищу уточнения. Многие классы в моем решении (C #) - осмелюсь сказать, что большинство - я закончил тем, что написал соответствующий интерфейс для. Например, интерфейс «ICalculator» и класс «Calculator», который его реализует, хотя я вряд ли заменю этот...

17
Создают ли перечисления хрупкие интерфейсы?

Рассмотрим пример ниже. Любое изменение в перечислении ColorChoice влияет на все подклассы IWindowColor. Имеют ли перечисления тенденцию вызывать хрупкие интерфейсы? Есть ли что-то лучше, чем enum для большей полиморфной гибкости? enum class ColorChoice { Blue = 0, Red = 1 }; class IWindowColor {...

16
Нелегально в PHP: есть ли причина разработки ООП?

Приведенное ниже наследование интерфейса недопустимо в PHP, но я думаю, что это было бы весьма полезно в реальной жизни. Есть ли настоящая антипаттерн или задокументированная проблема с приведенным ниже дизайном, от которой PHP защищает меня? <?php /** * Marker interface */ interface IConfig {}...

16
Использование ключевого слова «Использование» в интерфейсе C #

Когда я использую C # для написания некоторого кода и определяю интерфейс с помощью Visual Studio 2010, он всегда включает в себя ряд операторов using (как показано в примере) using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace TestEngine.TestNameSpace {...