Suggerimenti di architettura [chiuso]

-1

Sto scrivendo una piccola applicazione che ripristinerà l'intero "ambiente" costituito da varie macchine e applicazioni.

I nomi delle macchine vengono aggiunti tramite il file di configurazione - questo viene letto, i servizi appropriati vengono interrotti e i file di registro cancellati. Il mio problema non è come farlo (è già funzionante) un po 'più elegante, ma a causa della mia mancanza di esperienza, sono curioso della corretta architettura.

In questo momento sento che è un casino, grandi blocchi di codice, in 5 classi diverse (eliminazione, gestione dei processi, ecc.) e vorrei renderlo disponibile ad altri per migliorarlo.

Ad esempio, ho pensato di suddividere la classe DeleteLog in classi separate per macchina, aggiungendo e interfacciandole e programmandole nell'interfaccia (Strategy Pattern?).

Ho anche pensato di usare i delegati (a cui sono molto incapace, ma è sempre un buon momento per imparare).

    
posta Ryan 12.05.2011 - 22:37
fonte

3 risposte

1

Scomposizione

Super alto livello:

Obj-->-->--->

C -> P -> A |
     ^-------
  • File di configurazione / dati viene letto in (C)
  • I dati vengono elaborati e amp; azioni intraprese (P)
  • I risultati delle azioni sono analizzati (A)
  • sezione Feedback to Process se necessario (P < - > A)

Obj rappresenta un oggetto "Ambiente" (ad esempio un computer e le relative proprietà correlate), come si vede nel diagramma che scorre in avanti attraverso ciascun modulo.

Sezioni:

Modulo analisi

Modulo processo

Feedback (modulo monitor)

basato su quanto sopra riscrivo le tue classi attorno a quelle funzioni principali. Ogni metodo dei moduli dovrebbe riflettere il suo scopo principale.

    
risposta data 12.05.2011 - 23:26
fonte
1

Ciò che stai facendo sembra piuttosto semplice e funziona. 5 classi suona abbastanza, il pericolo se si inizia a dividere in schemi di fantasia è che diventa più difficile da leggere. Suggerirei di finire e passare a qualcos'altro.

    
risposta data 12.05.2011 - 23:25
fonte
0

Con che tipo di applicazioni stai lavorando? È difficile consigliare qualcosa senza guardare effettivamente le specifiche di quello che stai facendo ... Ma, forse, puoi semplificare la tua applicazione assicurandoti che le applicazioni che stai servendo abbiano un'interfaccia uniforme per fare le cose che ti servono. Ad esempio, ogni app ha uno script nella cartella X che può fare start , restart e stop . Puoi anche aggiungere alcuni metadati in questi script per aiutarti a gestire le applicazioni. In pratica, qualcosa come init.d su unix. Quindi la tua app legge i file dalla directory X e li esegue semplicemente.

    
risposta data 12.05.2011 - 22:52
fonte

Leggi altre domande sui tag