Из того, что я понял по текущему дизайну вашего приложения, о котором идет речь, и я предполагаю функциональность и думаю об альтернативном дизайне,
reportConfig.validateAgainstSchema(schemaService.getSchemaForDataset(reportConfig.getDataset()));
Что вы можете подумать, если reportconfig - это правильное место, чтобы сделать validateAgainstSchema
, если не думать о его изменении. Является ли schemaService
правильным местом для validateAgainstSchema
(я думаю, что нет), если это также не подходящее место для этого, то создайте SchemaValidator
или что-то подобное. Это то, о чем я мог бы подумать, используя информацию, которую вы мне дали.
Если validateAgainstSchema
не отменяется никакими дочерними классами ReportConfig
и возможность очень редка, то вам определенно следует подумать о ее перемещении. в другой класс. Причина, по которой я говорю это, заключается в том, что если схема меняется, вам не нужно менять reportConfig
класс
Если она переопределена и существует несколько реализаций, то одним из способов будет использование фабрики валидатора для получения валидатор и сделать валидацию. Я даже не знаю, подходит ли это вашему варианту использования, но это все, что я могу предложить в вопросе. Надеюсь, это поможет вам в чем-то.