== Introduction == Software design is what separates the amateur from the professional. Certain things are easier to do in certain ways. Those certain ways are known as Design Patterns and represent a distillation of the experience of many programmers. Time invested in learning Design Patterns always pays off. Main source of Patterns is: [[http://c2.com/cgi/wiki?StartingPoints]] == Patterns related to GUI design == === Model View Controller === * Theory : [[http://c2.com/cgi/wiki?ModelViewController]] and [[http://mail.python.org/pipermail/python-list/2006-January/319314.html]] * Implementation in wxPython : ModelViewController === Model View Presenter === MVP is an evolution of MVC. * Theory : [[http://c2.com/cgi/wiki?ModelViewPresenter]] and [[http://www.martinfowler.com/eaaDev/ModelViewPresenter.html]] * Implementation in wxPython : ModelViewPresenter