Вам можно использовать шаблон стратегия и фасад, но для 3 параметров, это избыточно,
лучшим решением будет отказаться от перегрузки функции Save, и применить рефакторинги переноса кода метода в другой класс, для всех перегрузок Save, по классу на перегрузку, и дать более специфическое имя для метода Save в основном классе
public interface IStreamSourceWriter: IDisposable {
WriteLine(string);
}
public void SaveFromSource(IStreamSourceWriter streamSourceWriter) {
// код ниже уходит в реализацию паттерна интерфейс, то есть в IStreamSourceWriter)
// управление временем жизни уходит в реализацию паттерна
// using(StreamWriter stid = new StreamWriter("**");
// stid.WriteLine(steamid);
// stid.Close();
streamSourceWriter.WriteLine(steamid);
}
public void SaveFromSources(IEnumerable<IStreamSourceWriter> streamSourceWriters) {
foreach(source in streamSourceWriters) {
SaveFromSource(source);
}
}