Шаблон для вызова одного и того же объекта в разных пространствах имен - PullRequest
0 голосов
/ 03 июня 2019

Я создаю проект веб-форм на языке c #.

Одним из ключевых требований является публикация в API, однако доступен не один, а несколько API.

В настоящее времяHttpClient объект уникально определен для каждого API в отдельном пространстве имен, как показано ниже:

MyCo.Myapp.PostApi.Client1.ClientObject
MyCo.Myapp.PostApi.Client2.ClientObject

Помимо HttpClient, сохраняются URL-адрес и тип конечной точки, а также несколько других объектов конфигурации.

Идея состоит в том, что пространство имен Client1 или Client2 хранится в базе данных и может использоваться для получения местоположения правильного API, для создания объекта.

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

Любой совет приветствуется.

1 Ответ

0 голосов
/ 03 июня 2019

Это кажется потенциальным кандидатом для подхода Abstract Factory .То, что вы описываете, звучит знакомо тому, как можно подключиться к различным типам баз данных, используя System.Data.Common

var settings = GetInfoFromDatabase();
var factory = ClientObjectFactory.Create(settings);

var clientObject = factory.CreateClientObject();
clientObject.Post("");  // This could be any of the client objects.  

Однако, поскольку у вас нет контроля над клиентскими API, у вас может быть базовая фабрика, выполняющая пост:

factory.Post(clientObject, data);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...