Qual è un buon modo per organizzare le classi del livello di servizio?

1

Avevo un livello di servizio nella mia app e, per un po ', c'è solo una classe per le chiamate API

Scenario corrente

MyAPI Class

  1. authenticateApp()
  2. authenticateUser()

Guardando al futuro, quella classe sarà così grande che sarà difficile mantenerla. Anche se raggruppo le chiamate con lo stesso modulo (utente autenticato, profilo utente, ecc.) Sarà sovrappopolato.

Scenario futuro

MyAPI Class

  1. authenticateApp()
  2. authenticateUser()
  3. ...
  4. getSomeDataFromSomeModule()

Per evitare ciò, come posso creare moduli su più file in un modo che non è visibile agli altri livelli?

Alcuni pattern come il metodo Factory o Decorator mi aiuteranno? C'è qualche altro schema che mi è mancato per risolvere questo?

    
posta orafaelreis 29.07.2015 - 23:06
fonte

2 risposte

2

Looking in the future, that class will be so huge that will be difficult to maintain it. Even if I group calls by the same module (user authenticate, user profile, etc.) it will be overpopulated.

Forse è il momento di refactoring in più classi avendo in mente questi 2 principi:

Se è necessario un numero importante di chiamate al metodo per ottenere uno scenario, prendi in considerazione la possibilità di raggrupparle in un Facciata .

    
risposta data 30.07.2015 - 15:59
fonte
1

Hai già menzionato i moduli, se il codice ha già senso per essere raggruppato logicamente in quel modo, continua con quello.

Potrebbe essere inevitabile avere un oggetto gatekeeper che concede l'accesso ai moduli, ma ogni modulo controllerebbe l'accesso e la funzionalità ad esso legata. Tornando alle origini e mantienilo ASCIUGA e tienilo SOLID aiuta a delineare quei moduli di alto livello.

In termini di modelli, i schemi strutturali sono un buon punto di partenza per esplorare le possibilità. I schemi di creazione dovrebbero anche offrire indicazioni su come ottenere l'accesso ai moduli dal gatekeeper.

    
risposta data 30.07.2015 - 16:48
fonte

Leggi altre domande sui tag