Запитання з тегом «interfaces»

Питання щодо міркувань щодо інтерфейсу, наприклад програмування на інтерфейс.

3
Використання інтерфейсів для слабо пов'язаного коду
Фон У мене є проект, який залежить від використання певного типу апаратного пристрою, хоча це неважливо, хто робить цей апаратний пристрій до тих пір, поки він робить те, що мені потрібно для цього. Зважаючи на це, навіть два пристрої, які повинні робити те саме, матимуть відмінності, коли вони не будуть …

12
Чи "Якщо метод повторно використовується без змін, покладіть метод в базовий клас, а ще створіть інтерфейс"?
Мій колега придумав принципове правило вибору між створенням базового класу або інтерфейсу. Він каже: Уявіть кожен новий метод, який ви збираєтеся реалізувати. Для кожного з них врахуйте це: чи буде цей метод реалізований більш ніж одним класом саме в такому вигляді, без будь-яких змін? Якщо відповідь «так», створіть базовий клас. …

5
Інтерфейс та спадщина: найкраще з обох світів?
Я 'відкрив' інтерфейси, і я почав їх любити. Краса інтерфейсу полягає в тому, що це договір, і будь-який об'єкт, який виконує цей договір, може використовуватися там, де потрібен цей інтерфейс. Проблема інтерфейсу полягає в тому, що він не може мати реалізацію за замовчуванням, що є болем за життєві властивості та …

2
Який правильний спосіб реалізувати інтерфейс OnClickListener для багатьох кнопок
Моя активність Android містить кілька кнопок, для яких потрібен OnClickListener. Я бачив безліч різних способів зробити це, наприклад: Реалізація інтерфейсу в класі активності Створення окремого класу, який реалізує інтерфейс Визначення анонімного внутрішнього класу для кожної кнопки. Я бачив багато прикладів кожного підходу. Однак мені не зрозуміло, чому один підхід буде …

1
Риси, спадкування та інтерфейси в Groovy, коли ними користуватися?
Я вивчаю бурхливо, і я щойно дізнався про нову функцію, додану в 2.3, що є додаванням ознак . Тепер мені здається, що риси дозволяють робити в основному все, що може зробити суперклас і інтерфейс. Чи додавання ознак до Groovy робить спадщину та інтерфейси застарілими? А якщо ні, то який найкращий …

1
Як я структурую інтерфейси, коли об’єкти використовують лише частину інтерфейсу?
У мене є проект, в якому я маю два класи, які вимагають об'єкта доступу до бази даних, який оновлює ту саму таблицю. Обмеження рамки та проекту роблять це таким, що я не можу поєднати ці два класи. Нижче я створив випадок, який показує, як відбувається налаштування. Клас A повинен мати …

3
Чи правильно інтерфейси залежати від конкретних класів?
Я створюю в Java інтерфейс для користувальницького обробника помилок. Хочете передати об’єкт помилки аргументу, але мені потрібно, щоб він був дочірнім Exceptionкласом. Чи добре використовувати моє визначене ім’я класу в інтерфейсі? Чи не зробить це менш інтерфейсом з точки зору того, що він не залежить від будь-якої реалізації? Я намагаюся …

2
Програмування до інтерфейсів, орієнтованих на дані
Є частина нашої кодової бази, написана у такому стилі: // IScheduledTask.cs public interface IScheduledTask { string TaskName { get; set; } int TaskPriority { get; set; } List<IScheduledTask> Subtasks { get; set; } // ... several more properties in this vein } // ScheduledTaskImpl.cs public class ScheduledTaskImpl : IScheduledTask { …

2
Принцип поділу інтерфейсу: Що робити, якщо інтерфейси мають значне перекриття?
З розробки програмного забезпечення Agile, принципів, моделей та практик: Нова міжнародна версія Pearson : Іноді методи, на які посилаються різні групи клієнтів, будуть перетинатися. Якщо перекриття невелике, то інтерфейси для груп повинні залишатися окремими. Загальні функції повинні бути оголошені у всіх інтерфейсах, що перекриваються. Клас сервера успадкує загальні функції від …

5
Чи завжди має сенс "програмувати інтерфейс" на Java?
Я бачив дискусію в цьому питанні щодо того, як клас, який реалізується з інтерфейсу, буде екземпляром. У моєму випадку я пишу дуже маленьку програму на Java, яка використовує екземпляр TreeMap, і, на думку кожного, вона має бути створена таким чином: Map<X> map = new TreeMap<X>(); У своїй програмі я викликаю …

3
Чи використання інтерфейсів для типів даних є антитілом?
Припустимо, у моїй моделі є різні об'єкти (використовуючи EF), скажімо, користувач, товар, рахунок-фактура та замовлення. Я пишу користувальницький елемент управління, який може друкувати підсумки об’єктів сутності у моїй програмі, коли об'єкти належать до попередньо прийнятого набору, у цьому випадку я кажу, що резюме користувача та продукту можна узагальнити. У всіх …

6
Розділити великі інтерфейси
Я використовую великий інтерфейс з приблизно 50 методами для доступу до бази даних. Інтерфейс написав мій колега. Ми обговорювали це: Я: 50 методів - це занадто багато. Це кодовий запах. Колега: Що з цим робити? Ви хочете отримати доступ до БД - у вас є. Я: Так, але це незрозуміло …

6
Чи є різниця між інтерфейсами та абстрактними класами, які мають лише абстрактні методи?
Скажімо, у нас є абстрактний клас, і нехай цей клас має лише абстрактні методи. Чи відрізняється цей абстрактний клас від інтерфейсу, який має лише ті самі методи? Що я хочу дізнатися, чи є якісь філософські, об’єктивні та різниці в мові програмування між абстрактним класом лише з абстрактними членами та відповідним …

3
Правила щодо конкретності типів параметрів методу, типів повернення та типів властивостей
Деякий час тому я читав своєрідне "велике правило" про конкретність типів параметрів методу, типів повернення та типів властивостей, але просто не пам’ятаю цього. Це щось говорило про те, щоб зберегти типи повернення максимально конкретними, а типи параметрів - максимально абстрактними ... або навпаки. Я не знаю, чи це насправді хороша …

2
Чи існує принцип інтерфейсу "запитувати лише те, що вам потрібно"?
Я перетворився на використання принципу для проектування та споживання інтерфейсів, який в основному говорить, "вимагайте лише того, що вам потрібно". Наприклад, якщо у мене є купа типів, які можна видалити, я зроблю Deletableінтерфейс: interface Deletable { void delete(); } Тоді я можу написати загальний клас: class Deleter<T extends Deletable> { …

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.