Итак, у меня есть приложение C # с пользовательской иерархией типов, глубиной ~ 4 слоя.
Эта многоуровневая структура обеспечивает чистую реализацию проверки данных и распространения событий изменения.
Примером может быть: DocumentNameValue -> NameValue - > StringValue -> BaseDataValue
.
Система работает нормально, но с учетомвсе уровни косвенности, производительность серферов.В абсолютном выражении это не огромный успех, но он суммируется.
Чтобы пояснить, проблема с производительностью, кажется, является результатом вложенных вызовов, которые происходят при доступе к данным.
Например, вызов DocumentNameValue.setValue("test.doc")
приведет к тому, что каждый уровень иерархии будет выполнять определенные проверочные тесты на входе.Они начинаются у основания и движутся вверх.Различные события также проводятся по пути.Значение фактически «хранится» в основании иерархии, если это имеет смысл.
Поскольку все, что я действительно сделал, это определил строгую иерархию типов, существует ли рекомендуемый метод дляиз:
- Преобразовать этот код C # в "плоский" высокопроизводительный эквивалент?(Во время выполнения или во время компиляции)
- Или, возможно, лучше создать DSL, который бы просто выдавал эквивалентный список типов / объектов?
Общая цель двоякая: Используйте строгие типы, характерные для моей проблемной области приложения, предоставьте чистое место для размещения моих правил проверки.
Может кто-нибудь дать несколько советов / предложений?Я все делаю неправильно?
Спасибо