В настоящее время в коде я использовал фабрику объектов, чтобы вернуть мне процессор на основе строкового тега, который до сих пор не выполнял своих функций.
using Core;
using Data;
public static class TagProcessorFactory
{
public static ITagProcessor GetProcessor(string tag)
{
switch (tag)
{
case "gps0":
return new GpsTagProcessor();
case "analog_manager":
return new AnalogManagerTagProcessor();
case "input_manager":
return new InputManagerTagProcessor();
case "j1939":
return new J1939TagProcessor(new MemcachedProvider(new[] { "localhost" }, "DigiGateway"), new PgnRepository());
default:
return new UnknownTagProcessor();
}
}
}
Телефонный код
var processor = TagProcessorFactory.GetProcessor(tag.Name);
if (!(processor is UnknownTagProcessor))
{
var data = processor.Process(unitId, tag.Values);
Trace.WriteLine("Tag <{0}> processed. # of IO Items => {1}".FormatWith(tag.Name, data.Count()));
}
как вы можете видеть, у одного из моих элементов есть зависимости, и я пытаюсь выполнить тестовый код, и я хочу передать имитирующие репозитории и провайдеров кеша, но я могу подумать, что это можно сделать.
Это плохой дизайн, или у кого-нибудь есть идеи по его исправлению, чтобы сделать мой завод пригодным для тестирования?
Спасибо