Come risolvere questo problema di duplicazione del codice con un motivo di progettazione [duplicato]

2

Questo è quello che sto facendo,

Creazione di un nuovo documento Pdf utilizzando Aspose Pdf

Aggiungendo alcune pagine diversi tipi conosci la pagina di introduzione, la tabella delle pagine di contenuti ecc ...

Aggiungendo altri documenti [ solo creato pdf ].

Non sei sicuro del pattern da utilizzare.

Sto pensando di creare classi per diversi tipi di pagine per creare pagine specifiche, in quanto i diversi reparti possono chiedere diverse pagine di introduzione o diversi layout di sommari e così via ...

Le classi del tipo di pagina avranno un controlo che creerà la pagina e restituirà il componente pdf.

per ogni diverso layout creerò una nuova pagina.

    
posta Mathematics 14.01.2015 - 13:08
fonte

1 risposta

8

IMHO ti stai avvicinando alla fine molto sbagliata. Chiedete di evitare il codice duplicato dove sembra che non abbiate (o almeno non molto) codice fino ad ora.

Inizia meglio ad implementare il codice per creare uno o due PDF, e ogni volta che sei tentato di copiare / incollare un pezzo di codice, fermati per un momento, fai un passo indietro e pensa se puoi evitare la duplicazione rifattorizzando le parti comuni in un singola funzione. Ogni volta che devi gestire i dati che formano un gruppo che appartiene insieme, prova a introdurre un struct o un class . E quando noti che hai operazioni isolate su quei dati, refactoring alle funzioni membro della classe creata. Quando ti accorgi che hai requisiti simili in classi diverse, rifatta quelli alle classi helper, alle classi base comuni e alle librerie finali resusabili.

Quando segui quel percorso, potresti giungere a un punto in cui hai scritto il codice reale in cui hai problemi a isolare i punti in comune - allora è un buon momento per presentare il problema qui, o su stackoverflow.com o su codereview.stackexchange e chiedi se esiste un modello di progettazione che può aiutarti.

    
risposta data 14.01.2015 - 14:22
fonte

Leggi altre domande sui tag