Esiste già una domanda abbastanza utile in questo senso (" Non-OOP Design Patterns? "), Ma sono più curioso di un punto di vista transitorio per qualcuno che ha appena iniziato con linguaggi dinamici e debolmente tipizzati. Cioè: diciamo che ho programmato in C ++, C # o Java per molti …
Ho iniziato a esaminare i modelli di design di recente e una cosa che sto codificando si adatterebbe perfettamente al modello di strategia, fatta eccezione per una piccola differenza. In sostanza, alcuni (ma non tutti) dei miei algoritmi, hanno bisogno di un parametro aggiuntivo o due passati a loro. Quindi …
Quali sono i pro e i contro di avere metodi di creazione di oggetti statici rispetto ai costruttori? class Foo { private Foo(object arg) { } public static Foo Create(object arg) { if (!ValidateParam(arg)) { return null; } return new Foo(arg); } } Pochi a cui riesco a pensare: Professionisti: …
Abbiamo una dipendenza da un servizio di terze parti che espone una gigantesca interfaccia di cui abbiamo bisogno solo di 3 metodi. Inoltre, l'interfaccia cambia frequentemente ... Ho deciso di racchiudere l'interfaccia in una classe nel nostro progetto ed esporre solo i metodi di cui abbiamo bisogno. Ma non sono …
Scenario: Stack: Java, Spring, Hibernate. Modello: applicazione client-server. Modello: Model-View-Controller (MVC). Le classi del livello di servizio hanno tre comportamenti: Alcuni servizi hanno la regola aziendale all'interno dei metodi e delegano la persistenza all'applicazione. Piace: EntityManager.save (entità); Alcuni servizi chiamano semplicemente una funzione di database (passando parametri) Come: CallableStatement cls …
In molti articoli in tutto il web i termini Inversione del controllo e dipendenza Principio di inversione sembrano essere confusi e usati come sinonimi (ulteriore confusione è imposta dagli strumenti che sono chiamati "DI-Containers" e "IoC-Containers"). Un articolo di Wikipedia fa un buon lavoro cercando di spiegare che l'IoC non …
Ho una classe: Aquesto è un composto di un numero di classi più piccole B, Ce D. B, CE Dimplementare interfacce IB, ICe IDrispettivamente. Dal momento che Asupporta tutte le funzionalità di B, Ce D, Aattrezzi IB, ICe IDcosì, ma questo purtroppo porta ad un sacco di ri-instradamento per l'attuazione …
Quando si pianifica l'architettura per un'applicazione Web MVC di medie dimensioni, come si implementano i layer per essere il più possibile disaccoppiato e facile da testare? (sostanzialmente seguo le migliori pratiche) Supponiamo che io stia usando il codice prima come accesso ai miei dati. Faccio fatica con cosa definire "business …
Semplicemente quali sono le tecniche pratiche che le persone usano per verificare se una classe viola il singolo principio di responsabilità? So che una classe dovrebbe avere solo una ragione per cambiare, ma a quella frase manca un modo pratico per implementarla davvero. L'unico modo che ho trovato è usare …
In primo luogo, sono consapevole che questa domanda si collega all'argomento dello sviluppo del gioco, ma ho deciso di porlo qui poiché si tratta in realtà di un problema di ingegneria del software più generale. Durante il mese scorso, ho letto molto su Entity-Component-Systems e ora sono abbastanza a mio …
Attualmente sto lavorando come sviluppatore solista sul mio progetto attuale. Ho ereditato il progetto da un altro sviluppatore, che da allora ha lasciato l'azienda. È un'applicazione web in stile controller vista modello in C #. Utilizza Entity Framework per la mappatura relazionale degli oggetti. E ci sono due diversi insiemi …
Sto lavorando a un'applicazione, un modulo del quale esegue le seguenti operazioni finanziarie in sequenza: Quando un utente richiede che un determinato importo venga trasferito sul suo conto bancario: controlla se qualche transazione può avvenire ora? (la transazione può essere eseguita solo durante un certo periodo di tempo) verificare se …
Prendi in considerazione un modulo responsabile dell'analisi dei file di qualsiasi tipo. Sto pensando di utilizzare il modello strategico per affrontare questo problema, come ho già spiegato qui . Si prega di fare riferimento al post collegato prima di procedere con questa domanda. Considera la classe B che necessita del …
Sto leggendo Coders at Work e Brendan Eich cita un articolo di Norvig, di quando era ad Arlecchino, "su come i modelli di progettazione sono davvero solo difetti del tuo linguaggio di programmazione". Qualcuno può fornire il link a questo documento?
Per esempio: var duckBehaviors = new Duckbehavior(); duckBehaviors.quackBehavior = new Quack(); duckBehaviors.flyBehavior = new FlyWithWings(); Duck mallardDuck = new Duck(DuckTypes.MallardDuck, duckBehaviors) Poiché la classe Duck contiene tutti i comportamenti (astratto), non sembra necessario creare una nuova classe MallardDuck(che si estende Duck). Riferimento: Head First Design Pattern, Chapter 1.
We use cookies and other tracking technologies to improve your browsing experience on our website,
to show you personalized content and targeted ads, to analyze our website traffic,
and to understand where our visitors are coming from.
By continuing, you consent to our use of cookies and other tracking technologies and
affirm you're at least 16 years old or have consent from a parent or guardian.