Оболочка над третьей частью фреймворка в c # - PullRequest
0 голосов
/ 16 декабря 2009

Я делаю тонкую оболочку над сторонним фреймворком, я думаю следующие варианты:

  1. полностью оберните фреймворк, чтобы клиент обертки не заметил обернутый фреймворк. если так, это означает, что я должен обернуть некоторые классы из фреймворка. Таким образом, нет никакой зависимости между клиентом оболочки и оболочкой.

  2. предоставляет некоторые классы из инфраструктуры клиенту оболочки, это означает, что клиент должен ссылаться на оболочку.

каково ваше мнение?

Ответы [ 3 ]

1 голос
/ 16 декабря 2009

Вы должны помнить цель и «изменчивость» фреймворка, но в целом я бы предпочел полностью обернуть его. Это дает вам гораздо больше гибкости и лучшей инкапсуляции (например, подумайте об исключениях)

1 голос
/ 16 декабря 2009

Я бы пошел дальше и написал бы функциональность, независимую от инфраструктуры, и создал бы "идеальные" интерфейсы, которые вы используете.

Затем создайте мост между вашей функциональностью и фреймворком.

Обертывание чьей-либо структуры не обязательно является огромным выигрышем, если обертка представляет собой непосредственный перевод структуры! Вы удалите двоичную зависимость, но концептуально будете связаны с каркасом, что затруднит использование вашего кода вне каркаса.

1 голос
/ 16 декабря 2009

Я бы сказал, что если цель оболочки - сделать клиентское приложение независимым от сторонней среды, то оболочка должна включать все аспекты этой среды, которые будет использовать клиентское приложение. Таким образом, сторонний компонент может быть заменен в дальнейшем, не затрагивая клиента (при условии, что интерфейс оболочки разработан достаточно универсальным, чтобы «соответствовать» другому стороннему компоненту).

...