C # Applicazione console - È il metodo principale Facciata [chiusa]

-6

Attualmente sto creando un'applicazione per console. È giusto che il metodo Main di un'applicazione console .net sia una facciata? Qualche metodo di immissione dell'applicazione della console è una facciata?

    
posta Icebraker 24.02.2017 - 15:02
fonte

1 risposta

1

No, il punto di una facciata è di offrire un'interfaccia (semplificata) a un insieme di classi. È una specie di strato di astrazione. Ora un metodo principale e una facciata hanno la somiglianza con l'uso di altri oggetti. Tuttavia, l'interfaccia di una facciata viene consumata da altri oggetti. Il metodo principale non offre un'interfaccia interessante e viene utilizzato solo dal runtime, non da altri oggetti.

Il metodo principale può decodificare gli argomenti della riga di comando e tradurli in chiamate di metodo. Ad esempio, il programma git offre un'interfaccia a riga di comando con molti sottocomandi come git pull , git fetch , git merge . Qui, il pull offre una vista semplificata sul recupero e unisce i sottocomandi. In quanto tale, il programma git in generale e git pull in particolare possono essere interpretati come una sorta di facciata.

Ma un programma a riga di comando può essere una facciata nel senso di modelli di progettazione orientati agli oggetti? No. Avviare un programma con i parametri della riga di comando è più come invocare una procedura, meno come inviare messaggi a un oggetto esistente indipendente. Pertanto, questo sarebbe un progetto puramente procedurale e non avrebbe alcuna parvenza di orientamento all'oggetto. Non è male, è solo qualcosa di diverso.

Come punto generale, non provare a vedere gli schemi di progettazione in tutto. Al centro di un buon design, ci sono buone decisioni di progettazione e compromessi, non schemi chiari. Anche quando i modelli sono usati consapevolmente possono assumere molte forme diverse. Inoltre, esistono modelli di design per raggiungere alcuni obiettivi. Per i modelli di progettazione "classici", l'obiettivo generale è aumentare la flessibilità e la riusabilità del software orientato agli oggetti. Non tutti i sistemi condividono questi obiettivi e non tutti i sistemi utilizzano tecniche orientate agli oggetti. Pertanto, l'utilizzo di questi modelli in un sistema con obiettivi diversi non è necessariamente una buona idea.

    
risposta data 24.02.2017 - 16:08
fonte

Leggi altre domande sui tag