Шаблоны появления фасадов и абстракций - PullRequest
0 голосов
/ 09 декабря 2018

Одним из важных преимуществ шаблона фасада является то, что он уменьшает зависимости между классами, что мне не ясно, поскольку я не знаю ни одного примера, реализующего этот шаблон.Кроме того, я знаю, что мы используем шаблон возникновения абстракции, так что мы создаем один класс, который содержит общую информацию между связанными объектами, и мы создаем другой класс, который содержит вхождения этих объектов, но я все еще не могу понять, в чем преимуществоделать это, потому что мы все еще можем сделать один класс, который может создавать эти связанные объекты?Поэтому, пожалуйста, кто-то прояснит эти два момента.

1 Ответ

0 голосов
/ 09 декабря 2018

Вы правы насчет неясного или бессмысленного примера этих шаблонов.Для разъяснения этих шаблонов я собираюсь объяснить их на двух примерах:

Фасад

Как вы можете видеть на следующих рисунках, первая имеет много отношений между клиентамии система заказов, тогда как вторая имеет лучший дизайн и уменьшает зависимость между внешними сущностями и внутренними сущностями.

WithoutFacade

Facade

Возникновение абстракции

Для реализации наших проектов вы можете делать все, но шаблоны помогают нам делать это правильно.Таким образом, шаблон Abstraction-Occurrence должен соблюдаться, если вы хотите избежать дублирования данных.Например, в библиотеке элементы (объекты) имеют общие свойства, такие как имя, автор и т. Д., Но эти элементы имеют различные свойства, такие как barCodeNumber, и если мы включим все свойства в один класс, мы не сможем использоватьобщие свойства отдельно.Например, другой объект может нуждаться в свойствах Title и других свойствах, но с одним классом мы не можем этого сделать.Шаблон Абстракция-Происхождение помогает нам справляться с этими ситуациями.

Abstraction-Occurrence

...