Articles of design

Perché il codice Java non utilizza PipedInputStream / PipedOutputStream?

Recentemente ho scoperto questo idioma e mi chiedo se ci sia qualcosa che mi manca. Non l’ho mai visto usato. Quasi tutto il codice Java con cui ho lavorato nei favori sfrenati per lo slurping dei dati in una stringa o un buffer, piuttosto che in questo esempio (utilizzando HttpClient e API XML, ad esempio): […]

Fat Models, skin ViewModels e Views stupidi, il miglior approccio MVVM?

Attraverso un aiuto generoso su questa domanda , ho messo insieme la seguente struttura MVVM che mostra i cambiamenti di un modello in tempo reale in XAML (data / ora corrente), molto bella. Un grande vantaggio di questa configurazione è che quando guardi la tua vista in modalità progettazione di Visual Studio o Blend, vedi […]

Come ereditare i costruttori?

Immagina una class base con molti costruttori e un metodo virtuale public class Foo { … public Foo() {…} public Foo(int i) {…} … public virtual void SomethingElse() {…} … } e ora voglio creare una class discendente che sovrascriva il metodo virtuale: public class Bar : Foo { public override void SomethingElse() {…} } […]

Perché le persone usano i bus messaggio / evento nel loro codice?

Penso che tu abbia sentito parlare di bus messaggio / evento, è il luogo unico in cui tutti gli eventi nel stream del sistema. Architetture simili si trovano nelle tabs madri e nelle reti LAN del computer. È un buon approccio per tabs madri e reti in quanto riduce il numero di fili, ma è […]

ReSharper – Possibile assegnazione nullo quando si utilizza Microsoft.Contracts

Esiste un modo per indicare a ReSharper che un riferimento null non si verificherà a causa del controllo Design-by-Contract? Ad esempio, il seguente codice genererà l’avviso ( Possible ‘null’ assignment to entity marked with ‘NotNull’ attribute ) in ReSharper nelle righe 7 e 8: private Dictionary _Lookup = new Dictionary(); public void Foo(string s) { […]

Come fai a sapere quando utilizzare i modelli di progettazione?

Chiunque può leggere il libro GoF per sapere quali sono gli schemi di progettazione e come usarli, ma qual è il processo per capire quando un modello di progettazione risolve un problema? La conoscenza del modello guida il design, o c’è un modo per capire come un modello può essere usato per cambiare un disegno? […]

AWT / SWT / Swing Java: come pianificare una GUI?

Ho già realizzato alcune applicazioni con una piccola interfaccia grafica. Niente di complesso, ma ho riscontrato diversi problemi che i componenti non vengono visualizzati o semplicemente non si comportano come previsto. Ora la mia domanda: Come pianifichi queste interfacce utente? Cosa fai quando hai bisogno di apportare modifiche? Come fai a eseguire il debug di […]

Perché una class implementerebbe IDisposable esplicitamente anziché implicitamente?

Stavo usando la class FtpWebResponse e non ho visto un metodo Dispose. Si scopre che la class implementa IDisposable, ma lo fa esplicitamente in modo che è necessario prima eseguire il cast dell’istanza su IDisposable prima di chiamare Dispose: // response is an instance of FtpWebResposne ((IDisposable) response).Dispose(); Perché il progettista di una class come […]

Filtro su un JTree

Problema Applicazione del filtro su un JTree per evitare che determinati nodes / foglie vengano visualizzati nella versione renderizzata di JTree . Idealmente sto cercando una soluzione che permetta di avere un filtro dinamico, ma sarei già felice se riesco a far funzionare un filtro statico. Per semplificare un po ‘, supponiamo che JTree supporti […]

La relazione IN di Cassandra è negativa per le domande?

Dato un esempio della seguente selezione in CQL: SELECT * FROM tickets WHERE ID IN (1,2,3,4) Dato ID è una chiave di partizione, sta usando IN relazione meglio di fare più query o non c’è alcuna differenza?