1)противокоррупционную слоя в фасадов, Услуги и SRP
а) ACL Фасад предлагает доступ только к тем особенностям другой системы (внешней системы или, возможно, даже другой Bounded Контекст также разработан наша команда), что наш BC нуждается. Если другая система предоставляет функциональные возможности (которые наша BC интересуется), что мы могли бы классифицировать на несколько различных обязанностей, мы должны определить один ACL Фасад для каждого из этих обязанностей или мы должны иметь единый ACL Фасад выставить все ответственности (предлагаемый внешней системой) что наш BC нуждается?
б) Если ответ на а) является то, что мы должны определить один ACL Facade для каждой из функций, предлагаемых внешней системой, мы должны в свою очередь, также определяют один ACL службы для каждого ACL Фасад?! .
2)
а) Эвана книги (стр 366):
Общедоступный интерфейс Антикоррупционного слоя Ussually появляется как набор услуг ... Это может даже не имеет смысла , в нашей модели, представляют внешнюю систему как единый компонент. Это может быть лучше использовать несколько служб, каждая из которых имеет согласованную ответственность в терминах нашей модели
ACL сам не находится в пределах домена слоя, но не в соответствии с вышеприведенная цитата Услуги ACL представляют доменные понятия? Если это так, мы не могли утверждать, что:
I - ACL услуги являются Domain Services?
II - что доменные понятия просочились в ACL?
b) Какая ответственность от Служба ACL?Просто посредник между нашим до н.э. и внешней системы (т.е. другого BC) или может ACL Service имеет ответственность отличающейся от ответственности предложенной внешней системы, и как таковой ACL Сервис может использовать функциональность, предлагаемую внешней системой только для выполнения своих собственных назначенных задач? .
3) книга Эванса (стр 366):
Общедоступный интерфейс Антикоррупционного слоя Ussually появляется как набор услуг ... Это может даже не имеет смысла, в нашей модели, представляют внешнюю систему как единый компонент. Это может быть лучше использовать несколько служб, каждая из которых имеет согласованную ответственность в терминах нашей модели
Является ли автор о том, что она не может иметь смысл представлять внешнюю систему как имеющие сингл ответственность, но вместо того, чтобы система может быть представлена как имеющие несколько обязанностей и, таким образом, мы определили бы ACL Фасад + обслуживание ACL (и соответствующий адаптер) для каждого из них Должности?
4) Btw - Я предполагаю, что ACL также может быть определен между двумя Ограниченный контекст существующий в том же приложении и разработанный той же командой?
UPDATE:
1)
а) я не совсем понимаю ваши рассуждения:
Если фасад используется тот же проект на различных обязанностей еще попадают в тот же ограниченный контекст, затем используют тот же самый фасад. Преимущества технического сцепления вдоль оси API внешней системы перевешивают преимущества функциональной связи вдоль оси ответственности.
I. Я предполагаю, что «в» опечатка и должно быть заменено на «и»?
II. Под «различных обязанностями по-прежнему попадают в тот же ограниченный контекст» вы имеете в виду тот факт, что Фасада только обнажая обязанности из одного до н.э.?
III.И если Фасад подвергало обязанность из несколько BCs, то мы должны иметь один фасаддля каждого этих внешнего BCs? Если да, то почему он предпочитает иметь один Фасад для всех BCs? Просто потому, что интерфейс Facade станет беспорядком?
IV. Под «Если фасад используется тот же проект» вы имеете в виду, если оба BCs являются частью же приложения, то мы должны использовать одного фасада выставить все обязанности? А что, если другой BC относится к различных приложений?
В.
Преимущество технического сцепления вдоль внешней системы API оси перевешивает выгоды от функционального сопряжения вдоль оси ответственности.
Почему когезии по технической предпочтительнее функциональной связи?
б)
Сам фасад фактически услуга или набор услуг. Нет необходимости , чтобы определить дополнительную услугу.
Хм, я не уверен, что понял это. Anyways, how do Услуги ACL map to Фасад? Возможно каждая служба ACL отображается один ответственности что наши Фасад разоблачений (т.е. если Фасад выставляет единую ответственность, то есть только один ACL службы, если он выставляет две обязанности, у нас есть две службы ACL и т. д.)?
3)
Является ли автор о том, что она не может иметь смысл представлять внешнюю системы, имеющие единую ответственность, но вместо того, чтобы эта система может быть представлена как имеющие несколько функций, и как таковые we будет определять ACL Facade + ACL (и соответствующий адаптер) для каждой из этих обязанностей?
Да, внешняя система может играть разные роли в вашей системе.Так как такой, он может быть представлен как несколько служб в ACL. Существует нет необходимости определять дополнительную услугу для каждой службы ACL - они уже являются сервисами.
Я должен признать, что я еще не слушал Making ролей UDI в явных, так что я бы потерял, но я не имел в виду, что мы должны добавить дополнительную ACL службы для каждого ACL сервис это у нас уже есть. Вместо этого я спрашивал, означает ли автор, мы должны иметь один ACL службы для каждого ответственности (т.е. если другой BC/Фасад имеет одна ответственность, мы должны определить одну службу ACL, если он имеет две обязанности, мы должны определить два ACL Services и т.д.)
4)
корректные. Однако отношения между двумя БК, разработанными локально , могут отличаться от отношений внешней системы.
Разное как?
Второе обновление:
1)
)
II.
Фасад инкапсулирует API внешней системы. Если функциональность , предоставляемая API, используется только одним BC, но существует несколько вариантов использования, тогда вполне нормально иметь один фасад для этого ВС. Альтернативой является создание фасада для каждого варианта использования . Это тоже хорошо, но, как я уже сказал, техническая сплоченность первого подхода может быть полезна.
Q1 - Вы используете термин "использование случай" вместо Ответственность. Могу ли я, полагая, что говоря «фасаду предоставляет один вариант использования» обычно предполагает, что Фасад предоставляет один метод, произнося «фасаду выставляет единую ответственность» может также означать, что Фасад предоставляет несколько методы (которые вместе выполняют конкретную задачу)?
Q2 - Так должен ли Фасад разоблачить Обязанности или примеры использования?
V.
Как правило, функциональное сцепление предпочтительнее технического или логического сцепление. Вообще, однако, у вас будут миксы обоих. Техническое решение может быть удобно при меньших масштабах. Например, вы можете использовать аналогичные механизмы сериализации или перевода на фасаде. Это удобно делиться ими между фасадами, однако не ценой функциональной связности. Поэтому вполне нормально использовать такую функциональность в пределах одного BC, но не через BC.
С Вдали одного фасадом имеющего Технического сцеплением вместо Функциональной когезии имеет смысл. Но становится довольно запутанным, как этот процесс выглядит на практике. Для того, чтобы объяснить, если предположить, внешней систему выставляет несколько обязанности, то мы можем конструировать Фасад таким образом, что она имеет технической сплоченности а что Функциональную когезии просто имея единый фасад разоблачения всей обязанности предлагаемой внешней системой .
Но у меня больше трудностей себе сценарий, когда внешняя система (и, таким образом, Фасад) предоставляет только единый ответственность - даже в таком случае можно разработать Фасад таким образом, что он имеет Техническое связывание, а не Функциональное сцепление? Если да, можете ли вы представить простой пример?
VI. Is Функциональное сцепление никак не связано с Боковые эффекты Свободные функции/Чистые функции?
2)
б)
В любом случае, как ACL услуги карта для фасада? Возможно, каждая услуга ACL сопоставляется с одной ответственностью, которую предоставляет наш Facade (т.е. если Facade предоставляет одну ответственность, тогда у нас есть только одна служба ACL, если она содержит две обязанности, у нас есть две службы ACL и т. Д.)?
ACL - это фасад, состоящий из услуг. И да, ваше предположение является приемлемым способом для этого. Термин «фасад» здесь не означает для обозначения одного класса, но набор классов (услуг) , содержащий слой антикоррупции. Это может быть только один класс, или может быть много.
I.Я думаю, что я понимаю, что вы намекаете, но только, чтобы быть уверенным - если нашего BC общается только с одна внешней системой и как таковые у нас есть только один Фасада является Фасадом обычно реализуются как 1 класс?
II. Кстати, я предполагаю, что ACL услуги не называют этот фасад непосредственно, но вместо того, чтобы позвонить по методов соответствующих Переходники, в свою очередь, вызов методы на это Фасад?
III.
И да, ваше предположение является приемлемым способом для этого.
Таким образом, вы, по сути предполагает, что если внешняя система выставляет две обязанности, мы должны иметь одного фасада подвергая обе обязанности, но с другой стороны, мы должны иметь два ACL услуги, по одному на каждый Ответственность?
ТРЕТИЙ UPDATE:
Ваши ответы у меня очень смущен, поэтому, прежде чем я могу производить какие-либо значимые вопросы в ответ на ваши ответы (в обоих это и другая тема, которую я сделал), я должен спросить вас следующее:
насколько я понимаю ваши ответы, кажется, вы, по сути говоря, что ACL услуги составляют Фасад, а это означает, что эти ACL Services представляют INTERF туз фасада? Что также будет означать, что Фасад относится к нашей н.э., поскольку она выражается в терминах модели предметной области (причина в том, что ACL Services выражаются в терминах модели предметной области нашей Британской Колумбии) нашей Британской Колумбии ?!
Но Эванс утверждает, что Фасад принадлежит в до н.э. другой системы (и как таковые должны быть выражены с помощью понятий предметной области внешней системы), в то время как ACL услуги должны принадлежать наш BC и как таковая должна быть выражена с использованием доменных понятий нашего ВС:
стр.367:
Фасад принадлежит в БЛ другой системы
Так же я неправильно ваше сообщение или ваше мнение по этому вопросу немного отличается, чем мнению Эванса?
спасибо
Вы можете увидеть мое обновление? – user437291
Можете ли вы увидеть мое второе обновление? – user437291
Можете ли вы увидеть мое третье обновление? – user437291