Итак, у меня возникла проблема с созданием объекта.Создание возражения, вызванное множественными значениями регулярных выражений
У меня есть несколько canonicalIds например.
school/1
school/1/class/12/
school/1/class/12/teacher/35
У меня есть разные объекты, которые представляют их и создаются с идентификатора. то, что я хочу сделать чистым способом, - это цикл через регулярные выражения и определить, какой именно объект.
Я застрял в определении того, как мне следует согласовать регулярное выражение с конкретным методом фабрики.
Я хочу извлечь тип, который определяется последним словом в строке. но и идентификаторы, а затем делегировать это службе для извлечения объекта из хранилища данных. все на месте, кроме клея. Я чувствую, что это лучший способ, чем с массивным, если/другое заявление
class Factory()
{
object create(string value)
{
if(match1.ismatch(value))
{
//getting match groups and then using the values to get an object from a data store
var schoolid= mactch.group[1].value;
return new SchoolSerice().GetSchool(schoolid);
}
if(match2.ismatch(value))
{
var schoolid= mactch.group[1].value;
var classid= mactch.group[2].value;
return new SchoolSerice().GetClass(schoolid,classid);
}
}
вы можете быть немного более конкретно о том, что вы хотите извлечь .. – rock321987
отредактированного сообщения с расширенными данными – BastanteCaro
я могу себе представить, применяя шаблон стратегии здесь, но если честно, я не вижу никакой пользы. Код будет разложен, а логика сложнее «видеть». Я предлагаю вам создавать такие функции, как 'isSchool()', 'isClass()' и т. Д. Для инкапсуляции логики регулярных выражений. Это сделает ваши инструкции 'if' более читаемыми. – Fuhrmanator