Если вы планируете использовать фабрику, вы можете использовать шаблон шаблона вместе с фабрикой или самостоятельно. Поскольку большая часть алгоритма останется такой же, за исключением одного шага, и в будущем у вас могут появиться дополнительные шаги (например, новые разделители)
Вот один из подходов, использующий шаблон. Вы можете использовать «Getter» вместо GetDelimiter ().
class abstract StringBuilder
{
public virtual string GetDelimiter();
public string BuildString(string inputString)
{
// Your Code goes here...
GetDelimiter(); // Code to introduce the delimiter
// Some more of your code
}
}
class ExcelStringBuilder : StringBuilder
{
public override string GetDelimiter()
{
return "\t";
}
}
class CsvStringBuilder : StringBuilder
{
public override string GetDelimiter()
{
return ",";
}
}