Re[2]: Рефакторинг а ля "remove dublicate code"
От: TheHobbit  
Дата: 11.02.08 13:57
Оценка:
Здравствуйте, DOOM, Вы писали:

DOO>Здравствуйте, TheHobbit, Вы писали:


TH>>Программеры, при инспекции кода ряда объектов написанных на JavaScript, которые должны быть reusable, было выявлено ряд функций, код которых дублируется с точностью до названий методов, т.е. вызываются разные методы одного объекта, данный код был квалифицирован как "пахнущий"(smell code) и предложено провести рефакторинг а ля "remove dublicate code", "путем вынесения указателя на функцию во входной параметр"(озвучено было в терминах языка Си)..т.е. заменить две похожих функции на одну, со входным параметром -указателем на функцию...проблема как реализовать идиому языка Си "указатель на функцию" с использованием синтаксиса javascript'a — первое, что приходит в голову, так это то, что javascript, можно в runtime переиницилизировать тело функции объекта, у какие еще есть проектные решения ?


DOO>Не понял в чем проблема?



DOO>
DOO>function a(c,d)
DOO>{
DOO> return d*c;
DOO>}
DOO>function b(c,d)
DOO>{
DOO>    return c+d;
DOO>}
DOO>function calc(fname,c,d)
DOO>{
DOO>    return fname(c,d);
DOO>}
DOO>alert(calc(a,2,3));
DOO>alert(calc(b,2,3));
DOO>


lot of thanks for the answer
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.