Вопросы с тегом «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; …

5
Должен ли я написать интерфейс API перед реализацией?
Недавно я углубился в более «организованное» программирование и узнал, что я должен программировать для интерфейса, а не для реализации. Имея это в виду, было бы лучше "набросать" проект в интерфейсах, прежде чем писать реализацию для него, где это возможно? И если это так, то в случае использования сторонних библиотек (например, …

3
Должен ли я реализовать интерфейс напрямую или сделать это суперклассом?
Есть ли разница между public class A extends AbstractB implements C {...} против... public class A extends AbstractB {...} abstract class AbstractB implements C {...} Я понимаю, что в обоих случаях класс А в конечном итоге будет соответствовать интерфейсу. Во втором случае AbstractBможет обеспечить реализацию методов интерфейса в C. Это …

6
Как реализовать только часть интерфейса
При разработке в ООП интерфейс / контракт иногда дается библиотекой, которую вы не можете изменить. Давайте назовем этот интерфейс J. Теперь у вас есть объект класса A, который потребляет объекты, которые реализуют этот интерфейс. Внутри Необходима только небольшая часть определений интерфейса. Некоторые из классов объектов созданы мной во время проекта …

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

3
Это плохой ООП дизайн для симуляции с участием интерфейсов?
Я разрабатываю свою собственную маленькую ООП-программу для симуляции вампиров, волков, людей и грузовиков и пытаюсь реализовать собственное ограниченное понимание интерфейсов. ( Я все еще абстрагируюсь здесь и не имею никакой реализации кода, так что это скорее вопрос ООП-дизайна ... Я думаю!) Прав ли я в поиске «общего поведения» между этими …

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? Имеет ли значение, на каком языке написано? В этом случае я хочу написать класс Random для использования в ActionScript, в котором …

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.