Design Pattern per un valutatore della proprietà

0

Sto provando a rifattorizzare un modulo di un'applicazione java che controlla la proprietà di diversi tipi di oggetti per account specifici. Per esempio. un cliente ha più contratti che contengono più domini, account di posta elettronica e così via.

L'applicazione utilizza la sicurezza Spring con una funzione hasPermission personalizzata. Ciò significa che la chiamata iniziale a questa funzione sta solo fornendo un oggetto del tipo Object. Ciò significa che attualmente esiste un brutto blocco di codice if-instanceof in una delle funzioni. Mentre è contenuto in questa funzione e non infastidisce nessuno, mi fa davvero rabbrividire ogni volta che lo vedo. Lo so, il gran maestro Zio Bob dice che va bene se è isolato in un blocco profondamente nascosto ma in qualche modo si sente sporco. Sto pensando di sostituire l'intero blocco con un modello di visitatore, ma ciò significherebbe che avrei dovuto inquinare il mio modello di dominio con un'interfaccia accept, che non mi piace troppo neanche ...

C'è un modello che lo rende migliore? Dovrei forse creare una fabbrica che restituisca un valutatore di autorizzazione tipizzato per ogni oggetto dominio? Sembra solo spostare l'instanceof in un'altra classe.

Non mi aspetto una soluzione al 100% per questo problema, sarei felice con suggerimenti e alcuni pro e contro. Più di una seconda opinione. Molte grazie in anticipo.

    
posta Christopher Guckes 15.08.2017 - 10:48
fonte

0 risposte