MVP, WinForms - Как избежать раздутого вида, ведущей и представления модели

StackOverflow https://stackoverflow.com/questions/2943378

Вопрос

При внедрении шаблона MVP в WinForms я часто нахожу раздутые интерфейсы просмотра с слишком многими свойствами, больными и получателями. Простой пример с возможностью быть представлением с 3 кнопками и 7 текстовыми коробками, все имеющие значение, включенные и видимые свойства, выставленные с вида. Добавление результатов проверки для этого, и вы можете легко в конечном итоге с интерфейсом с 40-динамическими свойствами. Используя модель презентации, будет модель с таким же количеством недвижимости Aswell.

Как вы легко синхронизируете представление и модель презентации без раздутой логики докладчика, которые проходят все значения взад и вперед? (С помощью этой 80-килоговой линии ведущего представителя представьте с презерующим тестом, который издевается с моделью и представлением. (Возможно, вы захотите использовать различные виды, чем вид WinForms. Согласно некоторым, эта синхронизация должна быть работой докладчиков.) Вы бы использовали Automapper?

Может быть, я задаю неправильные вопросы, но мне кажется, что MVP легко раздувается без какого-то хорошего решения здесь ..

Нет правильного решения

Другие советы

Это только одна идея, и я знаю, где некоторые люди могут не понравиться, - здесь много разных вещей, которые вы можете сделать здесь.

Если вы обнаружите, что используете много кода Boverplate, инкапсулируйте его.

public class UiField<ContentType>
{
    public bool IsEnabled { get; set; }
    public ContentType Value { get; set; }
    public bool IsVisible { get; set; }
}

По вашему мнению, то:

public interface ISampleView
{
    UiField<bool> IsStaffFullTime { get; set; }
    UiField<string> StaffName { get; set; }
    UiField<string> JobTitle { get; set; }
    UiField<int> StaffAge { get; set; }
    UiField<IList<string>> Certifications { get; set; }
}

Здесь вы завершаете различные свойства, связанные с каждым полем.

Кстати, я предлагаю вам не заглушать эти интерфейсы вручную для тестирования - используйте насмешку издевательства.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top