Описание тега interface-segregation-principle
По вопросам о принципах разделения интерфейсов (ISP) в объектно-ориентированном дизайне, одном из принципов SOLID, перечисленных Робертом К. Мартином. В нем говорится, что "клиентов не следует заставлять зависеть от интерфейсов, которые они не используют".
3
ответа
Разница между принципом замещения Лискова и принципом сегрегации интерфейса
Есть ли принципиальное различие между принципом замены Лискова (LSP) и принципом разделения интерфейса (ISP)? В конечном счете, оба ручаются за разработку интерфейса с общими функциями и вводят новый интерфейс, когда у вас есть специальное назначени…
01 фев '19 в 13:39
4
ответа
Принцип разделения интерфейса и методы по умолчанию в Java 8
Согласно принципу разделения интерфейса клиенты не должны быть вынуждены реализовать нежелательные методы интерфейса и поэтому мы должны определить интерфейсы таким образом, чтобы интерфейсы имели логическое разделение. Но концепция метода по умолча…
23 сен '17 в 08:25
1
ответ
Принцип подстановки Лискова VS Принцип разделения интерфейса
У меня проблемы с пониманием этих двух принципов. Это немного давно читаемый вопрос, так что наберитесь терпения. Предположим, что у нас есть класс abstract class Shape { abstract void onDraw(); } и интерфейс interface SideCountable { int getSidesCo…
17 дек '19 в 13:26
1
ответ
Не могу понять "противоречие" в статье Роберта Мартина о интернет-провайдере.
Я прочитал статью Роберта Мартина о принципе разделения интерфейсов здесь. В конце статьи, решая проблему с архитектурой UI банкомата, он заявил: Учтите также, что каждая отдельная транзакция, которую может выполнять банкомат, заключена в виде произ…
06 май '20 в 12:52
1
ответ
Принцип разделения интерфейса с "необязательными" методами в реализации
Принцип разделения интерфейса от SOLID гласит, что классы не должны реализовывать / зависеть от методов, которые им не нужны. У тебя никогда не должно быть//Not used: just needed to implement interface в базе кода. Как применить этот принцип, если н…
11 янв '20 в 16:09
1
ответ
Имитация частных интерфейсов в java 8
У меня проблема с имитацией общедоступных интерфейсов в java 8. Прямо сейчас у меня есть этот интерфейс с этими методами: public interface A<T> { void method1(T t) throws someException; void method2(T t) throws someException; default method3()…
03 мар '20 в 15:21
1
ответ
Должен ли я отделить тестовые функции, которые вызывают ошибку, от тестового интерфейса?
Я новичок в JUnit. Я пытаюсь написать модульный тест простого класса обслуживания "ProductService". Вот мои тестовые коды для "ProductService" public interface TestProductService { void shouldCreateProduct() throws EntityIsAlreadyCreatedException; v…
29 окт '20 в 16:39
0
ответов
Принцип разделения интерфейса: как разделить большой интерфейс с помощью множества дополнительных методов
Допустим, у меня есть интерфейс: interface WorkerInterface { public function doCommonAction1(CommonAction1Params $params): CommonAction1Result; public function doCommonAction2(CommonAction2Params $params): CommonAction2Result; /** * @return void * *…
17 ноя '20 в 13:31
0
ответов
Принцип ISP в C ++
Мне нужно выполнить проверку этого кода и проверить, где нарушается принцип разделения интерфейса (ISP). не могли бы вы мне помочь, пожалуйста? #include <stdexcept> // Phone Interface (not Apple product) struct IPhone { virtual void call() con…
17 апр '21 в 19:19
2
ответа
Как добиться полиморфизма с помощью принципа разделения интерфейсов?
Моя цель - понять принцип разделения интерфейсов и одновременно добиться полиморфизма. Мой ожидаемый результат: я могу добиться полиморфизма с помощью принципа разделения интерфейсов. Мой фактический результат: Нет, не могу. Я вынужден создать шабло…
24 май '21 в 19:29
0
ответов
Использование эксклюзивного метода интерфейса для сравнения без блоков if
У меня следующие интерфейсы: public interface Endpoint { void reply(HttpExchange exchange, Map<String, String> parameters, boolean prettyPrint); } public interface Nameable { String getName(); } public interface Patternable { // I seriously su…
09 июл '21 в 01:27
1
ответ
нарушает ли интерфейс по умолчанию принцип разделения интерфейсов?
в этом вопросе автор приводит несколько причин, почему defaultключевое слово введено в язык Java. Одна из причин - поддержка необязательного метода . Однако, принимая во внимание ISP , ни один клиент не должен зависеть от методов, которые он не испо…
11 июл '21 в 17:24
1
ответ
Применяется ли принцип разделения интерфейса к структурам данных?
Представим, что у нас есть большая структура данных (назовем ее) и различные клиентские классы (назовем их ). Каждой службе нужно всего одно или два поля из. Если мы введем весь объект в различные s, это нарушает ISP? Меняет ли тот факт, что техниче…
18 сен '21 в 15:04
2
ответа
Привести EF6 и EFCore Entity к единому интерфейсу?
Можно ли объединить разные версии Entity Framework (Core) Entities из двух приложений на основе EF 6 (с .NetFramework 4.0) и EF Core 5.0 (.Net Standard 2.1) с одной и той же базой данных в один интерфейс Entity вместо использования фактического клас…
14 окт '21 в 15:59
1
ответ
Принцип разделения интерфейсов Проблема, когда один интерфейс наследует два интерфейса, которые имеют одного и того же родителя.
У меня есть приложение со следующими настройками и используемыми типами. type CompanyFounder { name: string; age: number; salary: number; sharesHeld: number; getReasonStartedCompany: string; }; type NonExecDirector = { name: string; age: number; sha…
18 ноя '21 в 22:30
1
ответ
Нарушает ли "Accept Interfaces" устаревшие инструменты?
Устаревание Поддерживаемый способ пометки функций как устаревших выглядит примерно так: type MyStruct struct { } // MyFunc returns hello // Deprecated: Use YourFunc func (m MyStruct) MyFunc() string { return "hello" } Современные IDE будут выделять …
22 ноя '21 в 23:24
1
ответ
Мне нужно понять, как использовать дизайн стратегии в проекте PHP Project?
Примечание: это проект PHP У меня есть ситуация, когда я использую 2 провайдера API для своего проекта. Они похожи на ту информацию, которую предоставляют (API). Я должен установить это правильно, потому что, возможно, завтра будет добавлено еще не…
25 ноя '21 в 19:03
0
ответов
Соответствует ли шаблон составного дизайна принципам SOLID (пространственно L и I)?
Соответствует ли шаблон составного дизайна принципам твердого тела? если все методы композитинга объявлены в компоненте, это нарушение Принципа разделения интерфейса. если метод композитинга объявлен в композите, это нарушение принципа подстановки Л…
14 фев '22 в 08:43
1
ответ
Как создавать объекты с помощью шаблона декоратора?
У меня есть несколько вопросов относительно шаблона декоратора. Как я понял, шаблон декоратора существует для добавления поведения к объекту, т.е. «украшения объекта», чтобы вы могли составлять разные объекты без необходимости реализации большого ко…
17 дек '20 в 19:30
0
ответов
Что такое «клиент» в принципе разделения интерфейсов (ISP)?
Это одна из многих вещей, которые беспокоили меня некоторое время и из-за которых споры о правильной интерпретации этого привели меня в ряде проектов кодирования к тому, чтобы больше возиться с дизайном, чем с постоянным продвижением вперед. прогрес…
18 мар '22 в 10:43