У меня есть класс SalesOrder, который наследуется несколькими различными типами заказов на продажу. Он имеет метод под названием ValidateItems (OrderItemList, itemAdditionalValidation), который принимает список элементов заказа и делегат для дополнительной проверки в позиции заказа. Различные заказы клиента определяют собственную версию делегата, а затем передают его, когда они вызывают ValidateItems родительского класса SalesOrder. Делегат принимает объект OrderItem. Класс OrderItem имеет метод Validate(). Метод ValidateItems проходит через список и вызывает проверку на каждый OrderItem, а затем вызывает делегат itemAdditionalValidation и передает его в OrderItem.Рефакторинг некоторых из моего кода
До сих пор, когда я хотел проверить элементы, я всегда создавал бы добавление всех элементов в соответствующий заказ, а затем заказ вызывал бы ValidateItems и заботился обо всех проверках. Однако теперь я хочу иметь возможность напрямую вызвать OrderItem.Validate, не создавая при этом порядок, однако я не знаю, как реорганизовать делегат. В основном я хочу, чтобы OrderItem мог знать, какие делегаты должны звонить на основе типа заказа, с которым он имеет дело. Есть идеи? Также будут с благодарностью оценены любые советы о том, как улучшить мою текущую архитектуру.
Да, но мне нужно иметь возможность самостоятельно проверить элемент заказа, не введя его в порядок. Причина этого в том, что у меня есть форма, которая должна проверять каждую строку элемента заказа, когда клиент переходит к следующему, но я не хочу, чтобы он каждый раз проверял все позиции заказа в заказе. Я только хочу проверить один элемент заказа в тот момент, когда это произойдет. – Riz
На самом деле ваш второй абзац имеет смысл. Я это сделаю! – Riz