В: Является ли «DataContext» подходящим именем для этого класса?
В .NET у нас много классов DataContext, поэтому в том смысле, что вы хотите, чтобы имена надлежащим образом сообщали о том, что делает класс, я думаю, XyzQueueDataContext
правильно сообщает о том, что делает класс - хотя вы не можете запрашивать у него .
Если вы хотите быть более согласованными с принятыми языками шаблонов , Шаблоны архитектуры приложений предприятия вызывает любой класс, который инкапсулирует доступ к внешней системе для Шлюза , а более конкретно вы можете использовать термин Канал на языке Шаблоны интеграции предприятия - это то, что я бы сделал.
В: Плохо ли называть имя действия очереди так, как я это сделал?
Ну, это, конечно, тесно связывает имя очереди с классом. Это означает, что если вы позже решите, что хотите отделить их, вы не сможете.
В качестве общего комментария я думаю, что этот класс мог бы выиграть от попыток делать меньше. Использование очереди - это не то же самое, что управление ею, поэтому вместо того, чтобы иметь весь этот код управления очередью, я бы предложил ввести CloudQueue в экземпляр. Вот как я реализую свой конструктор AzureChannel:
private readonly CloudQueue queue;
public AzureChannel(CloudQueue queue)
{
if (queue == null)
{
throw new ArgumentNullException("queue");
}
this.queue = queue;
}
Это лучше соответствует принципу единой ответственности , и теперь вы можете реализовать управление очередью в своем собственном (повторно используемом) классе.