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

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

5
Як застосувати принцип розбиття інтерфейсу в C?
У мене є модуль, скажімо, "M", у якого є кілька клієнтів, скажімо, "C1", "C2", "C3". Я хочу розподілити простір імен модуля M, тобто декларації API та даних, які він відкриває, у файли заголовків таким чином, що - для будь-якого клієнта видно лише ті дані та API, які йому потрібні; решта …
15 c  interfaces  solid 

5
Використання Func замість інтерфейсів для IoC
Контекст: я використовую C # Я створив клас, а для того, щоб виділити його та полегшити тестування, я проходжу всі його залежності; він не має об'єктів миттєвого встановлення внутрішньо. Однак замість посилання на інтерфейси для отримання потрібних йому даних, я маю на ньому посилання на функцій загального призначення, які повертають …

2
Тепер, коли не всі декларації методів у Java-інтерфейсі є публічними абстрактними, чи слід оголошувати методи за допомогою цих модифікаторів?
Починаючи з Java 8, defaultметоди були введені в інтерфейси. Ефективно це означає, що interfaceдалеко не всі методи у abstract. Починаючи з Java 9 (можливо), privateметоди будуть дозволені. Це означає, що interfaceдалеко не всі методи є public abstract. Питання "Чи повинні бути оголошені методи в інтерфейсі Java з publicмодифікатором доступу або …

1
Чи є гарною практикою реалізація двох методів за замовчуванням Java 8 з точки зору один одного?
Я розробляю інтерфейс із двома спорідненими методами, подібними до цього: public interface ThingComputer { default Thing computeFirstThing() { return computeAllThings().get(0); } default List<Thing> computeAllThings() { return ImmutableList.of(computeFirstThing()); } } Близько половини реалізацій буде обчислювати лише одне, тоді як інша половина може обчислювати більше. Чи є цей прецедент у широко використовуваному …

4
Чи дозволено використовувати явну реалізацію інтерфейсу, щоб приховати членів у C #?
Я розумію, як працювати з інтерфейсами та явною реалізацією інтерфейсу в C #, але мені було цікаво, чи вважається поганою формою приховування певних членів, які не використовуються часто. Наприклад: public interface IMyInterface { int SomeValue { get; set; } int AnotherValue { get; set; } bool SomeFlag { get; set; …

5
Чи потрібно написати інтерфейс API перед реалізацією?
Нещодавно я заглиблювався в більш "організоване" програмування і вивчав, що я повинен програмувати інтерфейс, а не реалізацію. Зважаючи на це, чи було б краще "замалювати" проект в інтерфейсах, перш ніж писати реалізацію для нього, де це можливо? І якщо це так, у випадку використання сторонніх бібліотек (тобто Lidgren), чи потрібно …

3
Чи потрібно реалізовувати інтерфейс безпосередньо або дозволити суперклас це робити?
Чи є різниця між public class A extends AbstractB implements C {...} проти... public class A extends AbstractB {...} abstract class AbstractB implements C {...} Я розумію, що в обох випадках клас A в кінцевому підсумку відповідає інтерфейсу. У другому випадку AbstractBможна забезпечити реалізацію методів інтерфейсу в C. Це єдина …

6
Як реалізувати лише частину інтерфейсу
Під час розробки в OOP іноді інтерфейс / контракт надається бібліотекою, яку ви не можете змінити. Назвемо цей інтерфейс Дж. Тепер у вас є об'єкт класу A, який споживає об'єкти, що реалізують цей інтерфейс. Всередині Потрібна лише невелика частина визначень інтерфейсу. Деякі з об'єктних класів створюються мною під час проекту …

1
Використання методу Java за замовчуванням
В протягом багатьох десятиліть це було так , що інтерфейси були тільки лише (тільки) для визначення сигнатури методи. Нам сказали, що це "правильний спосіб робити речі ™". Потім вийшов Java 8 і сказав: Ну, е-е, тепер ви можете визначити методи за замовчуванням. Треба бігти, до побачення. Мені цікаво, як це …

3
Це поганий дизайн OOP для моделювання, що включає інтерфейси?
Я розробляю власну маленьку програму OOP для імітації вампірів, вовків, людей та вантажівки і намагаюся реалізувати власне обмежене розуміння інтерфейсів. ( Я все ще резюмую тут і ще не маю реалізації коду, тому це швидше питання дизайну OOP ... Я думаю!) Чи правильно я шукаю «спільну поведінку» між цими класами …

4
Два інтерфейси з однаковими підписами
Я намагаюся моделювати карткову гру, де карти мають два важливі набори функцій: Перший - ефект. Це зміни в ігровому стані, які відбуваються під час гри в карту. Інтерфейс для ефекту такий: boolean isPlayable(Player p, GameState gs); void play(Player p, GameState gs); І ви можете вважати карту граючою, якщо і лише …
13 interfaces 

4
Якщо інтерфейси поширюватимуться (і при цьому успадковуватимуть інші методи)
Хоча це загальне питання, воно також характерне для проблеми, яку я зараз переживаю. Наразі в моєму рішенні називається інтерфейс, вказаний у моєму рішенні public interface IContextProvider { IDataContext { get; set; } IAreaContext { get; set; } } Цей інтерфейс часто використовується у всій програмі, тому я маю легкий доступ …
13 c#  design  interfaces 

4
Чи існує інше обґрунтування використання абстрактних класів / інтерфейсів у C ++ та Java
За словами Герба Саттера, слід віддавати перевагу абстрактним інтерфейсам (всі чисті віртуальні функції) абстрактним класам на C ++, щоб максимально відключити реалізацію. Хоча я особисто вважаю це правило дуже корисним, останнім часом я приєднався до команди з багатьма програмістами Java, і в коді Java ця інструкція, здається, не існує. Функції …

4
Чи захищені авторські права інтерфейси та підписи методів?
Наприклад, чи є порушенням авторських прав, якщо я записую клас під назвою Random з точно такою ж метою і підписами методу, що і клас Microsoft .Net System.Random від Microsoft? Чи має значення, на якій мові написано? У цьому випадку я хочу написати клас Random для використання в ActionScript, у якому …

3
Склад над спадщиною, але
Я намагаюся навчити себе інженерії програмного забезпечення і зустрічаюсь із суперечливою інформацією, яка мене бентежить. Я вивчав OOP, що таке абстрактні класи / інтерфейси та як ними користуватися, але потім я читаю, що слід «надавати перевагу композиції над успадкуванням». Я розумію склад - це коли один клас створює / створює …

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