L'uso di strutture rende superfluo imparare i modelli di progettazione?

5

Non voglio dire che non è necessario conoscere i modelli di progettazione. Voglio solo raccontarti la mia esperienza.

Ho usato framework Spring per quattro anni e altri framework (JSF, Mybatis, Hibernate, ecc.) in vari progetti a cui ho partecipato (lavoro come Developer Java). In tutto questo tempo, ho usato alcuni modelli di design. Conoscere gli schemi di progettazione non sono stati necessari per la creazione di applicazioni web java di grandi dimensioni e di grandi dimensioni.

È un po 'vergognoso dire che ho usato solo pattern MVC, DAO e Factory. Forse, altri due altri ... ma non ricordo

Sono consapevole che non va bene e dovrei migliorare (sto cercando di saperne di più sui modelli di progettazione).

In primo luogo, vorrei che qualcuno avesse avuto la mia stessa esperienza. In secondo luogo, se potessi fornire informazioni sull'uso dei modelli di progettazione con i framework Java (perché è quasi impossibile che io usi i framework Java, ma so che ho bisogno di usare schemi di progettazione per buone pratiche).

    
posta Cesar Miguel 02.11.2016 - 06:47
fonte

3 risposte

8

La maggior parte dei framework utilizza già molti modelli di progettazione software noti. Quindi stai usando inconsapevolmente modelli di design.

Detto questo, ti suggerisco caldamente di provare ad imparare almeno quelli più comuni. È divertente.

D'altra parte, in un framework, le tue classi "si inseriscono" all'interno del progetto del framework, ma devi comunque codificare la tua logica di business . E, in questo ambito, i modelli di design continuano a essere applicati . I pattern non si applicano solo a livello "architechtural" ma anche a livello di business logic. È probabile che parti delle classi di dominio o controllori debbano risolvere problemi che traggono vantaggio da alcuni modelli di progettazione. I cosiddetti modelli di progettazione comportamentale hanno più probabilità di essere utilizzati nella logica aziendale, dal momento che molti framework già si occupano degli aspetti creativi e strutturali.

Quindi la linea di fondo sarebbe, no. Lavorare principalmente con framework non significa che non puoi più trarre beneficio dalla conoscenza dei pattern di progettazione. E, come ho detto prima, sono divertenti da imparare e da usare. A mio parere.

    
risposta data 02.11.2016 - 20:12
fonte
8

Ricorda che il libro originale di GoF ha il titolo completo "Design Patterns. Elementi di Riutilizzabile Software orientato agli oggetti".

E la maggior parte dei modelli GoF ha questo scopo: creare software che può essere inserito in librerie e / o framework e riutilizzato in una vasta gamma di casi d'uso, in una scatola nera, per lo più seguendo il principio aperto-chiuso.

Quindi, se non si costruisce alcun software riutilizzabile, basandosi solo su framework sviluppati da altri, è perfettamente possibile non trovare mai la necessità di implementare uno qualsiasi dei modelli GoF da soli. D'altra parte, sono abbastanza sicuro che all'interno di qualsiasi framework per scopi generali come quello di Spring si possa trovare il 90% di tutti i pattern GoF applicati da qualche parte.

Quindi la mia raccomandazione è: saperne di più sui design pattern se vuoi migliorare il design dei tuoi componenti per renderli più riutilizzabili. Se questo non è quello che vuoi (che sarebbe perfettamente ok, non sto valutando questo), probabilmente non hai bisogno di imparare molto su questi pattern.

    
risposta data 02.11.2016 - 08:47
fonte
0

Ti suggerisco di non concentrarti sui framework e quindi concentrarti su quali sono gli schemi di progettazione. Ti suggerisco di iniziare a leggere Head First Design Patterns e imparare questi modelli.

Quindi dovresti pensare a come lavorare con i framework mentre usi questi pattern.

Buona fortuna!

    
risposta data 02.11.2016 - 08:18
fonte

Leggi altre domande sui tag