У меня есть класс Java с методом тысяч линии, если/иначе логика, как это:рефакторинга, если/иначе логики
if (userType == "admin") {
if (age > 12) {
if (location == "USA") {
// do stuff
} else if (location == "Mexico") {
// do something slightly different than the US case
}
} else if (age < 12 && age > 4) {
if (location == "USA") {
// do something slightly different than the age > 12 US case
} else if (location == "Mexico") {
// do something slightly different
}
}
} else if (userType == "student") {
if (age > 12) {
if (location == "USA") {
// do stuff
} else if (location == "Mexico") {
// do something slightly different than the US case
}
} else if (age < 12 && age > 4) {
if (location == "USA") {
// do something slightly different than the age > 12 US case
} else if (location == "Mexico") {
// do something slightly different
}
}
Как я должен реорганизовать это в чем-то более управляемым?
Я понимаю, что это быстрый пример, но сравнение строк действительно нужно делать с помощью 'equals()'. – BalusC
... что происходит, когда вы ровно 12 ??? – polygenelubricants
Я бы взглянул на рисунок декоратора http://en.wikipedia.org/wiki/Decorator_pattern. – Lumpy