У меня есть этот метод monstro, у которого есть 1500 линий кода, полного условий и случаев.
Метод (он не скопировал метод здесь, из-за которого он попросит весь экран, и было бы причиняющим беспокойство делать scroll - Соединение закреплено в commit для того, чтобы будущие обновления это не сломали)
Поскольку я увидел в этих ситуацию, состоит в том, чтобы применять идеальное главный файл фактории. Но: было бы возможно упрощать еще больше?
То, что общеизвестный состоит в том, что есть один, жените огромно, что podrГ, - когда удалять, если ты осуществляешь что-то как:
public class ParseData{
public string nick {get;set;}
public string msg {get;set;}
}
interface IIRCParse{
ParseData Parse();
}
public IRCParse001 : IIRCParse{
public ParseData Parse()
{
//implementacion
}
}
public IRCParse006 : IIRCParse{
public ParseData Parse()
{
//implementacion
}
}
//resto implementaciones
Каждый cГіdigo parsea формы, отделенной в классе, и они все получают в наследство от интерфейса. И usarГ-схвати это посредством:
Dictionary<string, IIRCParse> ircParses = new Dictionary<string, IIRCParse>(){
{"001", new IRCParse001()},
{"006", new IRCParse006()},
//resto
};
IIRCParse parseInstance = ircParses[ircData[1]]
ParseData data = parseInstance.Parse();
из этой формы ты предотвращаешь switch
огромно и можешь отделять каждый код в одной implementaciГіn отличная desafiГі состоит в том, чтобы нормализовать parse для всех них cГіdigos, что возвратили тот же set таких данных как ответ
В примере, использует один Dictionary
, но Ваш ты используешь какую-то librerГ - в IoC (Unity, Ninject, StruncturaMap, autofac, и т.д.) даже лучше, так как в этой podrГ-эксперт mapear cГіdigo в осуществление и применять resolve, чтобы определять, что инстанция parser применяется.