Вот пример:
public list getPizzaIngredients(pizzaName) { if pizzaName = HAWAIIAN return [ CHEESE, TOMATO SAUCE, PINEAPPLE, HAM]; if pizzaName = ITALIAN return [ CHEESE, TOMATO SAUCE, PEPPERONI, OLIVES]; if pizzaName = MEATLOVERS return [ CHEESE, TOMATO SAUCE, PEPPERONI, BACON, SAUSAGE, OLIVES]; return null; }
Здесь мы повторяем ингредиенты в каждом списке. Альтернативный способ сделать это:
public list getPizzaIngrediants(pizzaName) { ing = []; ing.add(CHEESE) ing.add(TOMATO SAUCE); if pizzaName in (HAWAIIAN) ing.add(PINEAPPLE); if pizzaName in (HAWAIIAN) ing.add(HAM); if pizzaName in (ITALIAN, MEATLOVERS) ing.add(PEPPERONI); if pizzaName in (ITALIAN, MEATLOVERS) ing.add(OLIVES); if pizzaName in (MEATLOVERS) ing.add(BACON); if pizzaName in (MEATLOVERS) ing.add(SAUSAGE); return ing;
или мы могли бы сделать это более кратким:
public list getPizzaIngrediants(pizzaName) { ing = []; ing.add(CHEESE,TOMATO SAUCE) if pizzaName in (HAWAIIAN) ing.add(PINEAPPLE, HAM); if pizzaName in (ITALIAN, MEATLOVERS) ing.add(PEPPERONI, OLIVES); if pizzaName in (MEATLOVERS) ing.add(BACON, SAUSAGE); return ing;
Теперь лично - хотя первый пример более многословен и включает в себя повторение переменных, он гораздо более читаем и легче модифицируется, чем два других решения.
Существует ли соглашение об этом стиле/проблеме программирования?