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

13
Должны ли интерфейсы расширяться (и при этом наследовать методы) других интерфейсов

Хотя это общий вопрос, он также специфичен для проблемы, с которой я сейчас сталкиваюсь. В настоящее время у меня есть интерфейс, указанный в моем решении под названием public interface IContextProvider { IDataContext { get; set; } IAreaContext { get; set; } } Этот интерфейс часто используется во...

12
Имеет ли смысл определять интерфейс, если у меня уже есть абстрактный класс?

У меня есть класс с некоторыми функциями по умолчанию / общий доступ. Я использую abstract classдля этого: public interface ITypeNameMapper { string Map(TypeDefinition typeDefinition); } public abstract class TypeNameMapper : ITypeNameMapper { public virtual string Map(TypeDefinition...

12
Плохо ли использовать интерфейс только для категоризации?

Например: Скажем , у меня есть классы A, B, C. У меня есть два интерфейса, давайте называть их IAnimalи IDog. IDogнаследует от IAnimal. Aи Bесть IDog, а Cнет, но это IAnimal. Важной частью является то, что не IDogпредоставляет никаких дополнительных функций. Он используется только для разрешения Aи...

12
Как меняется концепция класса при передаче данных в конструктор вместо параметров метода?

Допустим, мы делаем парсер. Одна реализация может быть: public sealed class Parser1 { public string Parse(string text) { ... } } Или мы могли бы вместо этого передать текст конструктору: public sealed class Parser2 { public Parser2(string text) { this.text = text; } public string Parse() { ... } }...

12
UnsupportedOperationException в интерфейсах платформы Java-коллекций

Просматривая Java Collections Framework, я заметил, что довольно много интерфейсов имеют комментарий (optional operation). Эти методы позволяют реализовать классы, UnsupportedOperationExceptionесли они просто не хотят реализовывать этот метод. Примером этого является addAllметод в Set Interface....

12
Считается ли интерфейс «пустым», если он наследуется от других интерфейсов?

Насколько я могу судить, пустые интерфейсы, как правило, считают плохой практикой, особенно когда такие вещи, как атрибуты, поддерживаются языком. Однако считается ли интерфейс «пустым», если он наследуется от других интерфейсов? interface I1 { ... } interface I2 { ... } //unrelated to I1 interface...

11
Чем экзистенциальные типы отличаются от интерфейсов?

Учитывая экзистенциальный тип T = ∃X.{op₁:X, op₂:X→boolean} и этот общий интерфейс Java: interface T<X> { X op₁(); boolean op₂(X something); } Каковы принципиальные различия между экзистенциальным типом и интерфейсом Java? Очевидно, что есть синтаксические различия и объектная ориентация Java...

11
Модифицированный шаблон дизайна стратегии

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

11
Термин «интерфейс» в C ++

Ява проводит четкое различие между classи interface. (Я верю, что C # тоже, но у меня нет опыта с этим). Однако при написании C ++ не существует языкового различия между классом и интерфейсом. Следовательно, я всегда рассматривал интерфейс как обходной путь для отсутствия множественного...

11
Разница между различными интерфейсами коллекции Generic в C #

Я играю с C # для Windows и ASP.net MVC в течение некоторого времени. Но я все еще неясен в некоторых областях. Я пытаюсь понять основное различие между проблемами производительности и использованием и обменом подобными видами интерфейсов универсальных коллекций . Какова основная разница между...

11
Каковы веские причины для использования явной реализации интерфейса с единственной целью скрыть участников?

Во время одного из моих исследований тонкостей C # я наткнулся на интересный отрывок, касающийся явной реализации интерфейса. While this syntax is quite helpful when you need to resolve name clashes, you can use explicit interface implementation simply to hide more "advanced" members from the...

11
Отдельный интерфейс для методов мутации

Я работал над рефакторингом некоторого кода, и я думаю, что, возможно, сделал первый шаг по кроличьей норе. Я пишу пример на Java, но я полагаю, что он может быть агностиком. У меня есть интерфейс, Fooопределенный как public interface Foo { int getX(); int getY(); int getZ(); } И реализация как...

11
Какой ОО дизайн использовать (есть ли шаблон дизайна)?

У меня есть два объекта, которые представляют «Бар / Клуб» (место, где вы пьете / общаетесь). В одном сценарии мне нужно имя бара, адрес, расстояние, слогон В другом сценарии мне нужно название бара, адрес, URL сайта, логотип Итак, у меня есть два объекта, представляющих одно и то же, но с разными...

11
Почему CharSequence не определяет содержит (CharSequence)?

Это относится как к Java SE, так и к Android, поскольку контракты идентичны. Документация CharSequence для Java SE CharSequence документация для Android CharSequenceне определяет contains(CharSequence)метод. Кажется, я не могу найти причину, по которой, и в том числе, было бы весьма полезно...

10
Черты, Наследование и Интерфейсы в Groovy, когда их использовать?

Я изучаю Groovy, и я только что узнал о новой функции, добавленной в 2.3, которая является добавлением черт . Теперь мне кажется, что черты позволяют вам делать практически все, что может сделать суперкласс и интерфейс. Делает ли добавление Traits в Groovy наследование и интерфейсы устаревшими? А...

10
Интерфейс и наследование: лучшее из обоих миров?

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

10
Как правильно реализовать интерфейс OnClickListener для многих кнопок?

Моя активность Android содержит несколько кнопок, для которых требуется OnClickListener. Я видел много разных способов сделать это, таких как: Реализация интерфейса в классе деятельности Создание отдельного класса, который реализует интерфейс Определение анонимного внутреннего класса для каждой...

10
Должен ли каждый класс, который я пишу, придерживаться интерфейса?

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

10
Использование интерфейсов для слабосвязанного кода

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

10
Является ли «если метод повторно используется без изменений, поместите метод в базовый класс или создайте интерфейс», это хорошее правило?

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