2009-06-06 6 views
6

Sto cercando motivi di progettazione (GOF, ma anche altri sarebbero i benvenuti) per Delphi 2009.Design Patterns for Delphi 2009

ci sono alcuni articoli molto buoni e classici su Design Patterns in Delphi:

Inoltre, i nuovi Delphi hanno alcuni schemi di progettazione incorporati nell'IDE tramite la vista del modello.

Tuttavia, nessuno di loro sembra di fare buon uso delle nuove caratteristiche che Delphi ha da offrire, come generici e metodi anonimi. Ci sono esempi in C# che usano i metodi generici e anonimi, ma non possono essere tradotti in realtà 1: 1 in Delphi, e mi piacerebbe avere qualche consiglio da persone che hanno esperienza pratica con queste caratteristiche specifiche in Delphi .

C'è qualche esempio disponibile online o in un libro o qualcuno può fornire qualche utile esempio o suggerimento?

risposta

4

Ho una abbastanza semplice esempio di una fabbrica generico che utilizza i metodi anonimi fino here

+0

OK, articolo utile. Il tuo sito è nei miei preferiti adesso .. –

+0

Puoi dare un'occhiata a ModelMaker (http://www.modelmakertools.com) poiché implementa alcuni modelli di progettazione IIRC. Lo uso principalmente per la documentazione e la visualizzazione del codice, ma sembra essere uno strumento molto solido. –

1

modelli GOF sono gli stessi per qualsiasi linguaggio orientato agli oggetti. Delphi 2009 non è un'eccezione. Le caratteristiche dei metodi generici e anonimi sono solo uno zucchero sintattico, per semplificarci la vita. Quindi, se leggi il libro originale GOF Design Patterns, puoi facilmente applicare i suoi concetti a Delphi 2009 e tutte le sue versioni precedenti (anche alcune di Turbo Pascal).

+0

Ok, permettimi di chiarire: non sto cercando gli schemi (il libro che stai citando è sulla mia scrivania al momento). Sto cercando implementazioni e best practice specifiche ora che abbiamo nuove funzionalità linguistiche che possiamo utilizzare. –

+1

Alcuni pattern non sono facili da implementare in Delphi. Il pattern Visitor, ad esempio, quando le classi si trovano in unità diverse: l'unica soluzione che conosco riguarda le typecasts di classe hard. – mjn

+0

@mjn È possibile implementare il pattern Visitor utilizzando le interfacce: http://www.uweraabe.de/Blog/2010/08/16/the-visitor-pattern-part-2/ –