Класс .NET Wrapper - PullRequest
       6

Класс .NET Wrapper

2 голосов
/ 23 июня 2009

Должен ли класс-оболочка быть классом экземпляра или классом с общими членами? Мне нужно создать класс-оболочку для сторонней библиотеки, в которой представлены только две функции и скрыты все сложности стороннего класса.

Ответы [ 2 ]

3 голосов
/ 23 июня 2009

Простое правило здесь. Если класс в сторонней библиотеке является классом экземпляра , сделайте вашу оболочку экземпляром класса ; если у стороннего класса статический класс , создайте оболочку статический класс . Идея классов-оболочек, как правило, состоит в том, чтобы имитировать структуру, но просто скрывать сложность / расширенную / нежелательную функциональность.

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

1 голос
/ 23 июня 2009

Это действительно зависит от сторонней библиотеки ... если имеет смысл иметь несколько отдельных экземпляров библиотеки lib с отдельным состоянием, тогда подход на основе экземпляров подходит. Если это методы без сохранения состояния, то статический / общий API был бы уместен.

Если вам не нужен интерфейс для реализации интерфейса, в этом случае имеет на основе экземпляра.

...