Recentemente ho lavorato su Objective C e ho trovato l'uso del pattern Delegate.
Ho visto la maggior parte degli schemi comuni teoricamente in Java, grazie al libro Head First.
Ma a volte guardo le differenze nei linguaggi di script e dinamici mi confondo sulla necessità di determinati modelli di progettazione.
Ad esempio, prendi un esempio di Pattern adattatore.
Ha già due implementazioni: Object adapter [java] e Class Adapter [C ++]. a seconda che la lingua supporti o meno l'ereditarietà.
Ma con linguaggi dinamici come Objective-C, la tipizzazione anatra è possibile e abbiamo anche metodi come respondsToSelector per verificare se un oggetto supporta effettivamente un metodo o meno. Quindi, perché abbiamo protocolli qui anche se abbiamo bisogno di utilizzare un modello delegato?
Se possiamo assumere qualsiasi cosa per essere qualsiasi cosa. In un linguaggio dinamico, abbiamo bisogno di un concetto di classe astratta o di un'interfaccia per implementare pochi modelli?
sembrano più strumenti per linguaggi tipizzati staticamente per dare un comportamento dinamico.
specialmente non capisco la necessità di una parola chiave astratta in PHP.
Qualcuno può indicare alcuni dettagli importanti, sono relativamente nuovo a questo.