Я только что переработал код коллеги, который, грубо говоря, выглядел так...
public class Utility
public void AddHistoryEntry(int userID, HistoryType Historytype, int companyID)
{
// Do something...
}
public void AddHistoryEntry(int userID, HistoryType historyType, int companyID, string notes)
{
// Do something...
}
}
Для этого...
public class HistoryEntry
{
public long UserID { get; private set; }
public HistoryType HistoryType { get; private set; }
public long CompanyID { get; set; }
public string Notes { get; set; }
public HistoryEntry(long userID, HistoryType historyType)
{
this.UserID = userID;
this.HistoryType = historyType;
}
}
public class Utility
{
public void AddHistoryEntry(HistoryEntry entry)
{
// Do something...
}
}
}
Теперь это намного лучший дизайн кода и любимый дядя Боб. Однако мой коллега утверждает, что это намного дороже для нового объекта каждый раз, когда мы хотим вызвать этот метод.
Правильно ли он?
Дальнейшее объяснение
Спасибо за все ответы. Я оставил много деталей в надежде на краткость, но некоторые из них вызвали проблемы с ответами.
- Класс полезности не существует. Я просто хотел поместить методы в класс, чтобы вы все могли видеть. В действительности это в разумном классе.
- В исходном коде были, по сути, 5 AddHistoryEntry методы. Все из них занимали множество параметров int. Одной из причин рефакторинга было то, что
AddHistory(0, 1, 45, 3);
на самом деле вам не очень-то говорит! - AddHistoryEntry не вызывается из жесткого цикла, но широко используется во всем приложении.
Исправления
Я обновил примеры кода, так как ошибся с некоторыми параметрами.