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

9
Вернуть интерфейс или класс

Предположим, у меня есть метод public List<User> GetBatchOfUsers(IEnumerable<int> userIDs) { List<User> users = new List<User>(); // some database stuff return users; } Я прочитал, что было бы лучше вернуть интерфейс (либо IListили IEnumerable), а не возвращать List....

9
Принцип сегрегации интерфейса: что делать, если интерфейсы имеют значительное перекрытие?

Из Agile Software Development, Принципы, Шаблоны и Практики: Pearson New International Edition : Иногда методы, вызываемые различными группами клиентов, перекрываются. Если перекрытие небольшое, то интерфейсы для групп должны оставаться отдельными. Общие функции должны быть объявлены во всех...

9
Существует ли принцип интерфейса «спросите только то, что вам нужно»?

Я перешел на использование принципа проектирования и использования интерфейсов, который гласит: «просите только то, что вам нужно». Например, если у меня есть куча типов, которые можно удалить, я сделаю Deletableинтерфейс: interface Deletable { void delete(); } Тогда я могу написать общий класс:...

9
Правила о конкретности типов параметров метода, возвращаемых типов и типов свойств

Некоторое время назад я читал своего рода «практическое правило» о конкретности типов параметров метода, типов возвращаемых данных и типов свойств, но я просто не помню его. В нем говорилось о том, что ваши типы возвращаемых данных должны быть как можно более конкретными, а типы параметров - как...

9
Есть ли разница между интерфейсами и абстрактными классами, которые имеют только абстрактные методы?

Допустим, у нас есть абстрактный класс, и пусть этот класс имеет только абстрактные методы. Отличается ли этот абстрактный класс от интерфейса, который имеет только те же методы? Я хочу знать, есть ли какие-либо различия как в философском, объективном, так и в базовой реализации языка...

9
Что я могу использовать вместо интерфейсов в Ruby (или любом другом динамическом языке)?

Моя цель - определить контракты между классами. Мне нравится Duck Typing и все, но я также хотел бы определить интерфейс между различными уровнями моего приложения, чтобы четко определить, какой метод вызывать из внешнего интерфейса, а какие - вспомогательные методы, которые не должны...

9
Неявные и явные интерфейсы

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

9
Разделить большие интерфейсы

Я использую большой интерфейс с около 50 методов для доступа к базе данных. Интерфейс был написан моим коллегой. Мы обсуждали это: Я: 50 методов это слишком много. Это кодовый запах. Коллега: что мне с этим делать? Вы хотите доступ к БД - у вас есть. Я: Да, но это неясно и вряд ли будет исправимо в...

9
Как структурировать интерфейсы, когда объекты используют только часть интерфейса?

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

9
Является ли использование интерфейсов для типов данных анти-паттерном?

Предположим, у меня есть различные объекты в моей модели (с использованием EF), например, Пользователь, Продукт, Счет-фактура и Заказ. Я пишу пользовательский элемент управления, который может распечатывать сводки объектов сущностей в моем приложении, где сущности принадлежат заранее определенному...

9
Это нормально для интерфейсов, чтобы зависеть от конкретных классов?

Я создаю интерфейс на Java для пользовательского обработчика ошибок. Хочу передать объект ошибки аргумента, но мне нужно, чтобы он был потомком Exceptionкласса. Можно ли использовать мое имя класса в интерфейсе? Разве это не сделает его менее интерфейсным с точки зрения отсутствия зависимости от...

9
Всегда ли имеет смысл «программировать на интерфейс» в Java?

Я видел обсуждение этого вопроса относительно того, как будет реализован класс, реализующий интерфейс. В моем случае я пишу очень маленькую программу на Java, которая использует экземпляр TreeMap, и, по мнению каждого, она должна создаваться следующим образом: Map<X> map = new...