Powiększająca się drabinka ifów

0

Cześć,
dostaję przez websocket jaką porcję danych i w zależności co jest podane w parametrze "type" przekazuje cala wiadomosc do konkretnej funkcji. Oczywiście zrobiłem to na drabince ifów ;)
Czy jest jakiś ładniejszy i lepszy sposób na zrobienie tego? Drabinka caly czas sie rozbudowuje a ja juz teraz widze, ze strasznie slabo to wyglada ;/
Mój przykład poniżej:

ws.onmessage = function (event) {
			var obj = JSON.parse(event.data);
				if(obj["type"] == "connected")
				{
					connected(obj);
				}
				if(obj["type"] == "ping")
				{
					sendPong();
				}
				
				if(obj['type']== 'cosinnego')
				{
					cosinnego(obj);
				}
				if(obj['type']== 'cosjeszczeinnego')
				{
					cosjeszczeinnego(obj);
				}
				//i tak dalej
5
const options = {
   connected: (obj) => {},
   ping: (obj) => {},
   cosinnego: (obj) => {},
}

ws.onmessage = (event) => {
  const obj = JSON.parse(event.data);
  options[obj['type']](obj);
}
3

Po pierwsze łatwiejsze może użyj składni CASE zamiast IF.
Po drugie możesz dynamicznie wywoływać nazwę funkcji ( mniej eleganckie i trzeba pozabezpieczać )...
Pozostaje pytanie ile masz tych funkcji?
Takie pliki "nagłówkowe" to żaden problem ani ujma dla programisty.
Jeśli API ma np 200 funkcji to co ... Trzeba je powpisywać i tyle. Wywalić do osobnego pliku i niech tam sobie siedzą.
Nie ulegaj bezwzględnie "terrorowi", że funkcja musi mieć mniej niż 20 linii. Zachowaj zdrowy rozsądek. Jeśli jest logiczne wytłumaczenie dla 200 linii funkcji to niech tyle ma.

1 użytkowników online, w tym zalogowanych: 0, gości: 1