Автоматизация логики в Delphi - PullRequest
3 голосов
/ 06 февраля 2012

Мне нужно автоматизировать некоторые очень сложные бизнес-правила (страхование) в моем приложении Delphi.До настоящего времени мы использовали механизм сценариев для внешнего поддержания этих правил (многие операторы типа if / then / else), но это стало трудно поддерживать и невозможно проверить, и их трудно проверить с помощью конечного пользователя.

Большинство формальных механизмов правил, на которые я смотрел, плохо интегрируются с Delphi (в настоящее время использует D2007, но планируют перейти на 64-битную XE2 в этом году).

Кто-нибудь знает о каких-либо продуктах или использовал какие-либо продукты илиметоды, которые я мог бы использовать, которые могли бы помочь?

Ответы [ 3 ]

2 голосов
/ 06 февраля 2012

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

Однако я подозреваю, что проблема в том, что вам не хватает подходящей объектной модели. Наличие большого количества IF указывает на то, что у вас есть централизованная логика, и тогда решения зависят от многих факторов, которые вы все должны проверить, и в итоге вы получите беспорядок.

Это симптоматично работать с данными напрямую, а не с объектами. Когда вы манипулируете данными напрямую, вы должны знать все применимые правила.

Я всегда поддерживаю модельно-ориентированные решения. При правильно спроектированной объектной модели обязанности распределяются между классами в модели, таким образом удаляя горячие точки. Это соответствует принципу единой ответственности и Не повторяйся .

Задача, конечно, состоит в том, чтобы смоделировать проблемную область, но я рекомендую этот путь.

1 голос
/ 06 февраля 2012

Взгляните на Общие знания Связи объектов .У меня нет опыта с этим, однако.

0 голосов
/ 06 февраля 2012

Взгляните на RemObjects SDK (DataAbstract, если вам также нужен прямой доступ к базе данных).Они позволяют на стороне сервера и клиента создавать сценарии .

Мы с большим успехом использовали Databastract.

...