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

Вопросы по проектированию интерфейса, такие как программирование интерфейса.

166
Я изменил одну сигнатуру метода, и теперь у меня более 25 000 ошибок. Что теперь?

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

158
Чем полезны интерфейсы?

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

109
Почему я должен предпочесть композицию наследству?

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

99
Почему стандартные и статические методы были добавлены к интерфейсам в Java 8, когда у нас уже были абстрактные классы?

В Java 8 интерфейсы могут содержать реализованные методы, статические методы и так называемые методы «по умолчанию» (которые классам реализации не нужно переопределять). На мой (возможно, наивный) взгляд, не было необходимости нарушать подобные интерфейсы. Интерфейсы всегда были контрактом, который...

91
Должны ли мы разрабатывать наш код с самого начала, чтобы включить модульное тестирование?

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

90
Что подразумевается под фразой «программное обеспечение может заменить оборудование»?

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

73
Должны ли имена интерфейсов начинаться с префикса «I»?

Я читал « Чистый код » Роберта Мартина, чтобы, надеюсь, стать лучшим программистом. Хотя до сих пор ни один из них не был действительно новаторским, это заставило меня по-другому думать о том, как я проектирую приложения и пишу код. Есть одна часть книги, с которой я не только не согласен, но и не...

70
Когда использовать абстрактные классы вместо интерфейсов с методами расширения в C #?

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

59
Лучше Show () + Hide () или SetVisible (bool видимый)?

Что лучше и почему? (С точки зрения дизайна интерфейса): а) иметь два Show()и Hide()функции б) иметь одну SetVisible(bool visible)функцию РЕДАКТИРОВАТЬ: Например, некоторые объекты имеют состояние видимости, и эта функция используется для его изменения. в) иметь все три Show(), Hide(),...

47
Почему C # допускает свойства в интерфейсах?

В C # следующий код действителен interface I{ int property{get;set;} } Что не имеет никакого смысла для меня. Это, кажется, нарушает один из самых важных принципов интерфейсов: отсутствие состояния (другими словами, нет полей). Разве свойство не создает неявное приватное поле? Разве это не очень...

42
Программирование для будущего использования интерфейсов

Рядом со мной сидит коллега, который разработал такой интерфейс: public interface IEventGetter { public List<FooType> getFooList(String fooName, Date start, Date end) throws Exception; .... } Проблема в том, что сейчас мы не используем этот «конечный» параметр где-либо в нашем коде, он просто...

41
Что имел в виду Рич Хики, когда сказал: «Вся эта специфика [интерфейсов / классов / типов] убивает ваше повторное использование!»

В 29 -минутном выступлении Рич Хики, посвященном размышлениям на конференции Goto « Значение ценностей », он рассказывает о накладных расходах такого языка, как Java, и делает следующее заявление: «Все эти интерфейсы убивают ваше повторное использование». Что он имеет в виду? Это правда? В поисках...

40
Это плохая привычка не использовать интерфейсы? [закрыто]

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

37
Являются ли абстрактные классы / методы устаревшими?

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

34
По умолчанию против Impl при реализации интерфейсов в Java

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

34
Реализация идеи Модель-Представление-Презентатор

Я пытаюсь получить хорошее представление о том, как реализовать хорошее разделение между пользовательским интерфейсом и моделью, но мне сложно понять, где именно разделить линии. Я смотрел на Model-View-Presenter, но я не уверен, как именно реализовать его. Например, мой вид имеет несколько...

31
Реализация интерфейса, когда вам не нужно одно из свойств

Довольно просто. Я реализую интерфейс, но есть одно свойство, которое не нужно для этого класса и, фактически, не должно использоваться. Моей первоначальной идеей было сделать что-то вроде: int IFoo.Bar { get { raise new NotImplementedException(); } } Я полагаю, что в этом нет ничего плохого, но...