Sto scrivendo un programma (in PHP) in cui devo recuperare dei dati per collegarmi a gateway di pagamento usando due parametri.
Questi due parametri sono il paese di provenienza di un utente e il tipo di device utilizzato (smartphone o feature phone).

Al momento la soluzione che mi é venuta in mente é quella di fare un controllo su una serie di array annidati e di ritornare un'array con i possibili metodi di pagamento supportati (per esempio il primo e il terzo gateway)
Con i valori contenuti all'interno dell'array mi andrķ a istanziare gli oggetti (magari con un factory pattern) che andranno a fornire i dati necessari per avviare il pagamento.

Il tutto mi sembra abbastanza macchinoso e vorrei invece sfruttare qualche design pattern (se ce ne sono) che mi permetta di aggiungere ulteriori gateway in futuro.
Pensavo di usare qualcosa tipo uno strategy pattern per scegliere i gateway utilizzati, ma questo mi permette di avere solo un'oggetto di ritorno, mentre io non ho idea di quanti gateway saranno (sicuramente piú di uno).

Avete idee al riguardo?