Re[22]: Императивная парадигма
От: Undying Россия  
Дата: 22.07.11 07:38
Оценка:
Здравствуйте, samius, Вы писали:

S>Функция Foo.GetSum() берет данные из поля, нарушая тем самым твое следствие (т.к. это "внешний" массив), но детерминирована в общеупотребимом.

S>
S>class Foo
S>{
S>    int[] _array = new [] {1, 2, 3};
S>    public int GetSum()
S>    {
S>         return _array.Sum();
S>    }
S>}
S>


S>По-моему именно твои формулировки бессмысленны с точки зрения практики.


Чем плоха функциональность прибитая к классам?

1) Тяжело понять с какими именно сущностями функция класса работает. Т.к. классы обычно включают в себя гораздо больше сущностей, чем требуется конкретной функции класса.

2) Функции класса тяжело использовать повторно. Т.к. если подобная функциональность понадобилась в другом месте, то сущности необходимые для ее работы в этом месте обычно есть, а вот сущностей необходимых для конструирования класса содержащего эту функцию очень часто нет, т.к. для создания класса требуются дополнительные сущности, не нужные функции.

Поэтому разница в качестве кода при реализации функциональности в виде свободных функций по сравнению с функциональностью прибитой к классам очень велика. Это именно разница с точки зрения практики.

зы
Наконец-то удачный термин подобрал, то чему я давал определение должно называться "свободными функциями".
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.