У меня есть этот класс, который пробует несколько методов получения данных из API веб-сервисов карт Google.
Если один из методов не работает, он пытается использовать другой. и т.д.
Примерно так (псевдокод):
FUNCTION FIND_ADDRESS( house_number, postcode )
get location co-ordinates for postcode from local database
if location returns false, try getting location from maps service
if map service fails, return "postcode not found", exit
get address components using location co-ordinates
if address components doesn't contain street name, return street name not found, exit
if street name exists, get all address_components + location for house number, street_name and postcode
if no results, try again without the postcode,
if still no results, return location co-ordinates for postcode found earlier in code
END
Как видите, это очень процедурно!
Я пытаюсь придумать способы улучшить код, и я извлек весь код, пригодный для повторного использования, добавил обработку исключений, чтобы точно знать, где происходит сбой кода.
Но мне было интересно, знает ли кто-нибудь шаблон проектирования или подобное решение.
Потому что я в основном пытаюсь что-то, если мне не удается попробовать что-то еще, если мне не удается попробовать что-то еще и так далее, пока я не получу полный адрес
Есть идеи?