Mi chiedevo se esiste un modello di progettazione o un idioma per registrare automaticamente un tipo di class. O più semplice, posso forzare un metodo per essere chiamato su una class semplicemente estendendo una class base? Ad esempio, supponiamo di avere una class base Animal e di estendere le classi Tiger e Dog , e […]
Sto leggendo il libro di ac # che descrive il pattern SyncRoot. Mostra void doThis() { lock(this){ … } } void doThat() { lock(this){ … } } e si confronta con il pattern SyncRoot: object syncRoot = new object(); void doThis() { lock(syncRoot ){ … } } void doThat() { lock(syncRoot){ … } } Tuttavia, […]
Il modello “OLOO (Oggetti che collega ad altri oggetti)” di Kyle Simpson differisce in qualche modo dal modello di progettazione di Prototipo? Oltre a coniare qualcosa che indica specificamente “il collegamento” (il comportamento dei prototipi) e chiarire che non c’è “copiare” qui (un comportamento delle classi), che cosa introduce esattamente il suo schema? Ecco un […]
Entrambi i modelli di progettazione incapsulano un algoritmo e disaccoppiano i dettagli di implementazione dalle loro classi di chiamata. L’unica differenza che posso discernere è che il pattern Strategy accetta parametri per l’esecuzione, mentre il pattern Command non lo fa. Mi sembra che lo schema di comando richieda tutte le informazioni affinché l’esecuzione sia disponibile […]
Penso di avere una notevole esperienza con i normali schemi (funzionali) progettati, come descritto ad esempio nella banda di quattro libri , che ho usato principalmente in Java e C #. In questi linguaggi “gestiti” questo è praticamente tutto ciò che devi sapere per portare a termine il tuo lavoro. Tuttavia, nel mondo C ++ […]
In che modo un singleton è diverso da una class con solo campi statici?
Ho un numero di classi Processor che farà due cose molto diverse, ma sono chiamate dal codice comune (una situazione di “inversione del controllo”). Mi chiedo quali considerazioni progettuali dovrei essere cognitivo (o cognitivo, per voi utenti) di quando decidere se dovrebbero ereditare da BaseProcessor , o implementare IProcessor come interfaccia.
Sono principalmente interessato a Java, ma penso che sia una domanda generale. Recentemente ho lavorato con il framework di Arquillian ( ShrinkWrap ) che utilizza un sacco di metodi di concatenamento. Altri esempi di concatenamento dei metodi sono i metodi in StringBuilder , StringBuffer . Ci sono ovvi vantaggi nell’usare questo approccio: la ridotta verbosità […]
Ho programmato in Java per un po ‘di tempo, ma quando ho cercato di spiegare che cosa è una class java.lang.Object ad un amico, non potrei inventare più di una semplice fodera: Tutti gli oggetti in Java estendono implicitamente java.lang.Object Non ero del tutto sicuro del motivo per cui dovrebbe farlo. Quindi, ho guardato il […]
Sto pensando di implementare un’interfaccia utente secondo lo schema MVP usando GWT, ma ho dei dubbi su come procedere. Questi sono (alcuni dei) miei obiettivi: il presentatore non sa nulla della tecnologia dell’interfaccia utente (ad esempio non utilizza nulla da com.google. *) la vista non sa nulla del presentatore (non ancora sicuro se mi piacerebbe […]