L'oggetto PaypalCheckout è composto da oggetti PaypalQuery. Nascondere oggetti PaypalQuery agli utenti di PaypalCheckout?

2

Ho un oggetto PaypalCheckout che gestisce il processo di checkout: dall'iniziare le chiamate API, a fornire un'interfaccia per il codice front-end (ad esempio View / Controller).

L'oggetto PaypalCheckout gestisce: raccolta dei dettagli dei prezzi da un carrello, reindirizzamento a PayPal per il pagamento, ottenere i dettagli dell'indirizzo del cliente da Paypal, inviare conferma di pagamento a PayPal e infine determinare lo stato del pagamento.

Lo fa istanziando i figli di una classe PaypalQuery astratta come PaypalQuery_StartCheckout , PaypalQuery_GetAddressDetails , PaypalQuery_ConfirmPayment '.

La mia domanda riguarda come organizzare i metodi in PaypalQuery_ConfirmPayment e "PaypalCheckout":

Al momento, i miei oggetti PaypalQuery_ConfirmPayment hanno metodi come:

  • public function isPaymentSuccessful();
  • public function isPaymentPending()
  • public function hasItemNotReceivedProtection()
  • public function getPendingReason()

E speravo di nascondere tutti i metodi dell'oggetto PaypalQuery dal codice front-end. Il problema è che ciò implicherebbe la creazione di metodi in PaypalCheckout che chiamano in modo cieco e restituiscono metodi nelle classi PaypalQuery . Sebbene non sia esattamente una seccatura, "odora". Sebbene ciò che sono gli odori, per non parlare delle migliori soluzioni, mi sfugga.

Spero di mantenerlo così semplice - mentre potrei aggiungere altre opzioni di pagamento oltre a Paypal in futuro, sono a mio agio nel refactoring in quella data successiva. Inoltre, nel caso in cui faccia la differenza, non penso di utilizzare alcun modello di framework tradizionale come MVC - (anche se ho preso idee da loro). Lo sto facendo in PHP.

Quali soluzioni potrei usare? Grazie

    
posta CL22 28.04.2014 - 11:04
fonte

0 risposte

Leggi altre domande sui tag