Я видел два приложения, которые использовали механизм Сети Пламени от Справедливого Issac.
Одно приложение сбросило тысячи правил на единственную базу знаний, имел ужасные проблемы памяти, стал черным квадратом, который немногие понимают. Я не назвал бы это успехом, но он работает в производстве.
Другое приложение использовало деревья решений для представления на порядке сотен вопросов на медицинской форме клиентам расположения. Это было сделано так изящно, что деловые люди могут обновить правила по мере необходимости, не имея необходимость вовлекать разработчика. (Все еще должен быть развернут одним, все же.) я назвал бы это большим успехом.
, Таким образом, это зависит от того, как хорошо сфокусированный проблема, размер набора правила, знание разработчиков. Мое предубеждение - то, что просто создание механизма правил единая точка отказа и дамп правил в него, вероятно, не являются хорошим подходом. Я запустил бы с управляемого данными или табличного подхода и вырастил бы это, пока механизм правил не был необходим. Я также стремился бы инкапсулировать механизм правил как часть поведения объекта. Я скрыл бы механизм правил от пользователей и попытался бы разделить пространство правил в модель предметной области.
Используйте TypeOf ... Is :
If TypeOf objectParameter Is ISpecifiedInterface Then
'do stuff
End If
requiredInterface.IsAssignableFrom (providedType)
и requiredInterface, и providedType являются типами