Это простая проблема, которая меня смутила.Инкапсулирующая логика в конструкторе объекта?
У меня есть два класса и словарь (упрощенный для примера):
class Result {
public string Description;
}
class Error {
public int ErrorCode;
}
Dictionary<int, string> errorCodeToMessage = new Dictionary<int, string> {
{ 0, "Item not found" },
{ 1, "Connection error" }
}
В базе кода я унаследовал я вижу эту линию очень часто:
Result result = new Result {
Description = errorCodeToMessage[error.ErrorCode];
}
я не хотите, чтобы словарь использовался повсюду, я хочу, чтобы эта логика была инкапсулирована либо в объект Result
, либо в объект Error
.
Я думал о создании нового конструктора в объекте Result
, который будет принимать ErrorCode и делать там логику. Но я не уверен, что это лучший способ.
Как вы это сделаете?
Я согласен с тем, что в этом примере то, что вы написали, правильно, но как оно отвечает на мой вопрос? Мне все равно придется использовать ResourceManager так же, как я использую этот словарь. –
@ the-lights Ничего плохого в этом конкретном случае использования - это одноэлемент - «глобальная вещь» в вашем приложении. Я обновил ответ на примере. – BartoszKP
Вот что я в итоге сделал –