A Simple start with MVP in Delphi for Win32, Part 2

Some month ago I wrote a simple article about an MVP variant called PassiveView. That example was very simple. Now I’ll present a more “advanced” version of that example. The main problem with first example was the following method: procedure TfrmCalculatorView.FormCreate(Sender: TObject); begin //Link controls with related interface IFirstOperand := TGUIEdit.Create(EditFirstOp); ISecondOperand := TGUIEdit.Create(EditSecondOp); ICalcResult := TGUIEdit.Create(EditResult); IOperators := TGUISelectableList.Create(ComboOperators); IError := TGUIEdit.Create(EditError); //link view and presenter FPresenter := TCalculatorPresenter.Create(Self); //<<– THIS IS THE BAD LINE end; The “BAD” line links the View with the Presenter but it’s in the view code, so this is meaning that View KNOWS the…
Continua a leggere →

A Simple start with MVP in Delphi for Win32, Part 1

As GUI framework such as VCL become more and more powerful, it’s common practice to let the UI layer do more than it should. Without a clear separation of responsibilities, the UI layer can often become an integral part of application and businness logic, but… this kind of responsabilities belongs to other layers of the application. A design pattern (and his numberless variants), is especially well suited to solving this problem. In this article I want to build a simple application using MVP pattern. Actually, pattern used is not “clear” MVP but his variation called Passive View. Using Fowler words:…
Continua a leggere →