Non sono necessari modelli di progettazione. In qualsiasi lingua
Tendo a imbattermi in un sacco di codice scritto da persone che leggono sui modelli di progettazione e poi pensano che dovrebbero usarli ovunque. Il risultato è che il codice reale viene sepolto sotto tonnellate di interfacce, wrapper e layer ed è piuttosto difficile da leggere. Questo è un approccio sbagliato ai modelli di progettazione.
Esistono modelli di progettazione in modo da avere a portata di mano un repertorio di idiomi utili quando si incontra un problema. Ma non dovresti mai applicare alcun modello prima di identificare il problema. Keep It Simple Stupid dovrebbe sempre essere il principio di governo superiore.
Aiuta anche a pensare ai modelli di progettazione come a un concetto per pensare al problema piuttosto che a un codice di caldaia specifico da scrivere. E su gran parte del boilerplate come soluzione alternativa a Java mancano le funzioni gratuite e gli oggetti funzione standard che si usano nella maggior parte degli altri linguaggi che li hanno (come Python, C #, C ++ ecc.).
Potrei dire che ho un modello di visitatore, ma in qualsiasi lingua con funzioni di prima classe sarà solo una funzione che assume una funzione. Invece della classe di fabbrica di solito ho solo una funzione di fabbrica. Potrei dire che ho un'interfaccia, ma poi sono solo un paio di metodi contrassegnati con commenti, perché non ci sarebbe nessun'altra implementazione (ovviamente in Python un'interfaccia è sempre solo commenti, perché è tipizzata in duck). Parlo ancora del codice come usando il modello, perché è un modo utile di pensarci, ma in realtà non digitare tutto il materiale fino a quando non ne ho davvero bisogno.
Quindi impara tutti gli schemi come concetti . E dimentica le implementazioni specifiche. L'implementazione varia e dovrebbe variare, nel mondo reale, anche solo in Java.