Конечно, трюк заключается в том, чтобы вернуть объект после его модификации:
String.prototype.foo = function() {
return this + "+";
}
var str = "Notepad";
console.log(str.foo().foo().toUpperCase());
http://jsfiddle.net/Xeon06/vyFek/
Чтобы сделать этот метод доступным на String
, я модифицирую его прототип. Будьте осторожны, чтобы не делать этого на Object
, хотя это может вызвать проблемы при перечислении их свойств.
Понятно и просто: если есть какой-либо код, который нужно совместно использовать в нескольких местах, он должен перейти в другой класс, который можно использовать в качестве зависимости, где это необходимо. Перечисленные зависимости не кажутся слишком большими, хотя вам следует тщательно продумать, нужна ли вам зависимость от HttpContext
. Большую часть времени вам следует просто передать какое-то значение методу. Например, если вам нужно работать с идентификатором пользователя, передайте идентификатор пользователя в метод вашего вспомогательного класса, вместо того, чтобы заставить вспомогательный класс получить зависимость от HttpContext
и получить сам идентификатор.
Если у вас все еще слишком много зависимостей, то вы, вероятно, нарушаете принцип единой ответственности. Вам может понадобиться несколько вспомогательных классов или совершенно другая стратегия. Трудно сказать что-то определенное, не зная точно, что вы делаете.