Il mio scenario: sto creando un'applicazione che mi permetterà di creare una mappatura di url di reindirizzamento che punti dall'URL di richiesta (l'url nella vecchia soluzione di e-commerce) all'URL di destinazione. Ci saranno molteplici implementazioni in quanto abbiamo diverse soluzioni di e-commerce che si stanno spostando verso il nostro nuovo.
Lavoro in Laravel e ho creato un'azione controller che attualmente restituisce in JSON l'URL di reindirizzamento per UNA delle nostre attuali soluzioni di e-commerce. L'implementazione di questo metodo sarà molto diversa da una soluzione all'altra.
Potrei essere "sporco" e creare una classe astratta come storeAbstract e ogni store lo estende e io guardo solo il store_type inviato al controller e uso la classe corretta.
È così che l'ho sempre fatto, ma sto cercando di espandere i miei orizzonti e mi sono degnato di trovare un modello di progettazione che si adatti a questa situazione. Se qualcuno ha qualche suggerimento su quale modello di progettazione dovrei usare e su come lo implementerei in laravel, sarebbe molto apprezzato.
Esempio di come lo farei ora:
Abstract class AbstractStore {
public function getRedirectUrls() {}
}
class StorefrontStore extends AbstractStore {
public function getRedirectUrls(){
// code to get the redirect urls
}
}
class <ecommstore>Store extends AbstractStore {
public function getRedirectUrls(){
// code to get the redirect urls
}
}
Questo sembra molto semplice e deve esserci un modo migliore.