Re[39]: Словарь
От: Qbit86 Кипр
Дата: 16.01.17 13:16
Оценка:
Здравствуйте, vdimas, Вы писали:

V>Т.е., суть техники в том, что можно разработать некий тип и рядом с ним "словарь" операций над ним.

V>Схематично:
V>[cs]
V>interface IMath<T>
V>{
V> T Add(T a, T b);
V> T Sub(T a, T b);
V> T Mul(T a, T b);
V> T Div(T a, T b);
V>}

Дело говоришь. Не далее как вчера мне приходилось описывать аналогичное (моноид с `Identity` и `Combine()`).

V>Разве что потребуется каждый раз подавать этот словарь как аргумент — либо как обычный аргумент, либо как генерик параметр примерно так:


В стандартной библиотеке .NET конкретно для этих распространённых интерфейсов (`IComparer<T>`, `IEqualityComparer<T>`) принято передавать их как есть, а не как констрейнты дженерика. То есть просто обычный динамический полиморфизм.

V>Ну или можно представить некий сложный алгоритм как объект (структуру) и параметризировать этот объект словарём лишь однажды.


Всё так. Вместо «свободной» функции с десятком аргументов делать метод типа, замыкающего в конструкторе часть этих аргументов как фиксированные параметры экземпляра.
Глаза у меня добрые, но рубашка — смирительная!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.