Этот вопрос возникает с точки зрения javascript, но он, безусловно, может относиться и к другим языкам.
В последнее время я сталкиваюсь с этим все чаще и чаще, и мне было интересно, существует ли передовая практика или, по крайней мере, хороший стандарт проектирования, когда можно создавать свои методы.
Очевидные варианты, которые я вижу, следующие, наряду с тривиальным примером для каждого
Несколько методов:
this.makeGetRequest = function(controller){...}
this.makeSynchronousGetRequest = function(controller){...}
this.makePostRequest = function(controller, data){...}
Один метод с большим количеством параметров:
//data would be an optional parameter
// this.makeRequest("friends", "GET", true);
// this.makeRequest("friends", "POST", false, newFriend);
this.makeRequest = function(controller, type, isSynchronous, data){...}
Один метод с параметром options:
this.makeRequest = function(controller, type, options);
this.makeRequest("friends", "POST", {data:newFriend, isSync:false});
Пример HTTP-запросов просто мотивирован вопросом, но он работает для любой общедоступной функции с различным количеством настроек/переменных.
Очевидно, что все три одинаково функциональны. Но что такое хорошая практика? Есть ли какой-то стандарт или руководство, которому обычно следуют?