Я строю графики.Граф состоит из узлов, связанных друг с другом ссылками (действительно, моя дорогая).Чтобы назначить определенное поведение каждому узлу, я реализовал шаблон стратегии.
class Node {
public BaseNodeBehavior Behavior {get; set;}
}
В результате во многих частях приложения я широко использую отражение типов, чтобы знать, какое поведение является узлом..
if (node.Behavior is NodeDataOutputBehavior)
workOnOutputNode(node) ....
Мой график может содержать тысячи узлов.
- Влияет ли отражение типа на производительность?
- Должен лиЯ использую что-то еще, кроме паттерна стратегии?
Я использую стратегию, потому что мне нужно наследование поведения.Например, в основном, поведение может быть Data или Operator, поведение Data может быть IO, Const или Intermediate, и, наконец, поведение IO может быть Input или Output.
Так что, если я использую перечисление, я не смогучтобы проверить, что поведение узла относится к типу данных, мне нужно проверить, чтобы оно было [Input, Output, Const или Intermediate].И если позже я захочу добавить другое поведение типа данных, я облажался, каждый метод тестирования данных должен быть изменен.