Spesso non è ovvio come implementare un determinato modello di progettazione in una lingua. A volte è difficile o ingombrante. Esistono linguaggi creati per rendere l'utilizzo dei modelli di progettazione facile ed efficace?
Considera questi punti:
L'importante è che un modello di design non sia intrinseco a un linguaggio; è quasi letteralmente solo un modello di codice al quale sono arrivati in modo indipendente molti sviluppatori. Gli schemi di progettazione che emergono in un particolare linguaggio sono considerati il modo idiomatico e preferito di risolvere determinati tipi di problemi.
Certo, ci sono innumerevoli "framework" MVC là fuori, ma in realtà usano solo MVC come label per la sottostante buona pratica - modularità e ortogonalità tra modello di dati, presentazione e interazione con l'utente.
Un linguaggio non può essere progettato per rendere "utilizza schemi di progettazione" facili ed efficaci, perché i modelli di progettazione emergono dal design della lingua. Non è possibile progettare una lingua attorno a modelli che appariranno come risultato dei propri punti di forza e di eventuali mancanze. Tutto quello che puoi fare è progettare un oggetto più espressivo e potente. Se gli idiomi e gli schemi popolari per una determinata lingua sono difficili da implementare, significa semplicemente che il linguaggio stesso è ingombrante .
Tautologicamente: in un linguaggio più espressivo, è più facile esprimerti.
I modelli di progettazione (espressioni idiomatiche) sono in genere un sintomo di una mancanza di linguaggio di programmazione. Man mano che le lingue migliorano, i pattern diventeranno intrinsechi.
Non penso che sia la caratteristica del linguaggio offrire un modello di design, in effetti nessun linguaggio lo fa. Gli stessi sviluppatori progettano modelli e fanno uso del linguaggio in questo. MVC, MVP, MVVC sono schemi di progettazione che possono essere applicati a qualsiasi lingua.
Inoltre, ci sono alcuni IDE che ti aiutano a sfruttare i modelli di progettazione. Come nel caso di Visual Studio 2010, è possibile utilizzare il modello di progettazione MVC selezionando il modello MVC ASP.NET.
Leggi altre domande sui tag programming-languages design-patterns