Devo mapear um objeto de domínio para um modelo de exibição usando um construtor opcional?

Eu gostaria de poder mapear um modelo de domínio para um modelo de exibição atualizando um modelo de exibição e passando o modelo de domínio contribuinte como parâmetro (como o código abaixo). Minha motivação é evitar a reutilização do código de mapeamento E fornecer uma maneira simples de mapear (ainda não usando o automapper). Um amigo diz que o modelo de exibição não deve saber nada sobre o modelo de domínio "pagamento" que está sendo passado para o construtor opcional. O que você acha?

public class LineItemsViewModel
{
    public LineItemsViewModel()
    {
    }

    public LineItemsViewModel(IPayment payment)
    {
        LineItemColumnHeaders = payment.MerchantContext.Profile.UiPreferences.LineItemColumnHeaders;
        LineItems = LineItemDomainToViewModelMapper.MapToViewModel(payment.LineItems);
        ConvenienceFeeAmount = payment.ConvenienceFee.Fee;
        SubTotal = payment.PaymentAmount;
        Total = payment.PaymentAmount + payment.ConvenienceFee.Fee;
    }

    public IEnumerable<Dictionary<int, string>> LineItems { get; set; }
    public Dictionary<int, string> LineItemColumnHeaders { get; set; }
    public decimal SubTotal { get; set; }
    public decimal ConvenienceFeeAmount { get; set; }
    public decimal Total { get; set; }
}

questionAnswers(2)

yourAnswerToTheQuestion