2016-04-25 7 views
1

Итак, ведущий вызывает модель, чтобы получить некоторые данные.В шаблоне MVP, ведущий отвечает за форматирование чисел до процентов?

Эти данные возвращаются как DTO без форматирования.

Допустим, данные просто десятичное .12

ли предъявитель затем отформатировать число в процентах?

view.Amount = Math.Round(dto.Amount * 100, 2) + "%"; 

Или это мнение отвечает?

public decimal Amount 
{ 
    set 
    { 
     txtAmount.Text = Math.Round(dto.Amount * 100, 2) + "%"; 
    } 
} 

ответ

1

Я не использую C# и WebFormsMvp, но я думаю, что ваш вопрос в значительной степени связан с общей архитектурой MVP. Позвольте мне объяснить это из области WebFormsMvp. Единственная ответственность P должна быть посреднической между M и V (в терминах того, как «передавать» данные M на V и наоборот), а V отвечает за , как данные представлены в пользователь.

Рассмотрите следующий сценарий: вы решили отказаться от поля txtAmount (давайте рассмотрим его как текстовую метку или ввод и т. Д.) В пользу определенного типа индикаторов выполнения или простых диаграмм. Если вы передали «нормализованные» значения чисел до (поскольку они поступают из вашего M в вашем случае), вы все равно можете заменить свое количество, как хотите, так как они должны принимать значение необработанного числа.

public interface IView { 
    decimal Amount { set; } 
} 

Сравним выше:

public interface IView { 
    // How to apply a string to a chart as a data item? 
    string Amount { set; } 
} 

Для последнего, вы бы лицом к лицу с «строки в десятичное» проблему для Amount имущества, требующего, чтобы переработать ваш string IView.Amount обратно decimal IView.Amount (или даже хуже: разбор процентного значения, снижающего знак % и т. д. прямо в экземпляре IView, чтобы снова сделать его числом, даже не зная тип исходного номера: было ли оно десятичным или целочисленным?)

Вы также можете рассматривать проценты как V для людей: 42% в процентах или 420 ‰ в представлении промиля все еще 0,42 в модели.

+0

Это очищает его и имеет прекрасный смысл. Благодаря! – drizzie

 Смежные вопросы

  • Нет связанных вопросов^_^