я работаю по следующему сценарию:Соответствующая конструкция для нескольких объектов, которые возвращают аналогичные данные
взгляд имеет несколько вкладок. Каждая вкладка представлена отдельным классом и содержит сетку данных.
Каждая вкладка может возвращать набор элементов, выбранных пользователем. Эти предметы очень похожи, но каждый имеет один или два дополнительных свойства .
The View Presenter есть метод, называемый SendItems, который должен получить элементов из активной текущей вкладки и вызвать соответствующий бэкенд метод обслуживания (один метод в различную коллекции элементов).
Что здесь подходит? Я подумал о двух путях до сих пор:
Поскольку детали очень похожи, я мог бы теоретически сгруппировать все свойства в класс 1 пункт, а затем я могу абстрагировать все это из имея метод называется GetItems(), который возвратит коллекцию . Затем я могу использовать словарь делегата по типу вкладок для , который вызывает правильный фоновый метод.
Я могу иметь все вкладки из базы, сохранить список вкладки в презентаторе и удерживать вкладку «Текущий». В SendItems сделайте несколько условий (по одному для каждого типа (если CurrentTab
is
TabA => MethodA(), и т. Д.)), А затем downcast для получения правильных данных. Наконец, вызовите соответствующий фоновый метод.
Я не нахожу ни решение привлекательной (групповые отдельные свойства в одном классе/понижающее приведение) и надеялся, что это стандартный способ решения такого рода проблем.