Это анти-шаблон Crudy? - PullRequest
       28

Это анти-шаблон Crudy?

4 голосов
/ 16 марта 2010

В настоящее время я создаю службу WCF, которая должна подключаться к DAL, который просто подключается к базе данных с помощью ADO.net и хранимых процедур.

DAl записывает свои ответы из базы данных в контракт данных, который передается по сети клиенту через службу.

Я читал, что, возможно, это анти-паттерн "CRudy Interface", но я не был уверен, так как делюсь данными.

Если я использую анти-шаблон, может ли кто-нибудь предложить лучший шаблон для поведения, которое мне требуется?

Ответы [ 3 ]

4 голосов
/ 16 марта 2010

Что ж, похоже, есть некоторые противоречия по поводу паттерна CRUDy и его плюсов и минусов. Как минимум, я бы назвал интерфейс службы, который заставляет вас писать такой код, чтобы использовать его как анти-шаблон (как прокомментировано здесь ):

service.CreateCustomer(c);

foreach(Group group in c.Groups)

  service.AddCustomerToGroup(c.CustomerId, group.GroupId);

foreach(Person person in c.Contacts)

  service.AddCustomerContact(c.CustomerId, person);

Неужели разоблачение интерфейсов CRUDy само по себе плохо? Я бы так не сказал. Важно предоставить интерфейс, который будет

  1. инкапсулирует знания об основных процессах
  2. не будь очень болтливым
2 голосов
/ 16 марта 2010

Это похоже на анти-шаблон интерфейса CRUD, но было бы неплохо увидеть некоторые примеры интерфейсов для подтверждения.

Эта статья действительно хорошо обсуждает вопрос разработки более совершенных сервисных интерфейсов.

Включает критику и альтернативу анти-паттерну CRUD.

1 голос
/ 08 ноября 2010

Если у вас есть неаккуратный вариант реализации, вы получите неуклюжий интерфейс, не переживайте Анти-паттерн - это когда вы делаете грубые вещи неуклюже.

...