Design Pattern

There are 3 entries for the tag Design Pattern

Refactorings quick reference guide

Quando si vuole procedere con un po' di miglioramento del proprio codice ci sono 2 libri molto interessanti che ci possono guidare in questa operazione: Martin Fowler's "Refactoring: Improving the Design of Existing Code" Joshua Kerievsky's "Refactoring to Patterns". C'è anche qualcuno che si è preso la briga di fare una piccola guida per navigare più agevolmente il contenuto di questi 2 manuali.Il documento .pdf lo potete scaricare da qui. Penso che sulla mia scrivania questo foglio possa trovare il suo giusto spazio, magari soppiantando l'oramai consunto foglio con la lista degli shortcut di Resharper ! Technorati tags: Refactor, Design Pattern

Pattern MVP: usare una classe base per ottimizzare il test dei Presenter

In questo ultimo periodo ho usato molto il pattern ModelViewPresenter. Per scrivere le mie triadi MVP ho utilizzato la tecnica del presenter first con ottimi risultati. All'interno dei miei unit-test ho fatto ampio uso di Mock Objects ed ho notato una certa ripetitività nel codice prodotto, soprattutto nei metodi di Setup e di TearDown. Con una soluzione simili a quella usata per il refactoring del presenter, ho usato i generics ed una classe base per evitarmi inutili ripetizioni. Vediamo un esempio concreto. Di seguito un presenter con la sua View ed il suo Model     public interface IMyView     {       void ShowLoggedUser(string s);    }   public interface IMyModel   ...

Pattern MVP: usare una classe base per ottimizzare i Presenter

In questo periodo ho scritto molto codice che usa il pattern MVP ed ho notato che il costruttore di un presenter fa bene o male fa quattro operazioni fondamentali: riceve riferimento ad un'instanza della view  controlla che la view non sia null riceve riferimento ad un'instanza del model controlla che il model non sia null Con una sintassi simile a questa: public class MyPresenter    {       private readonly IMyModel _model;       private readonly IMyView _view;       public MyPresenter(IMyView view,IMyModel model)        {           if (view ==null)               throw new ArgumentNullException("view");           if (model ==null)               throw new ArgumentNullException("model");            _model = model;            _view = view;        }    }/p>   In un progetto mediamente complesso capita di...