On Wed, 2009-12-30 at 16:50 +0000, Tony Marston wrote: > I have recently been engaged in an argument via email with someone who > criticises my low opinion of design patterns (refer to > http://www.tonymarston.net/php-mysql/design-patterns.html ). He says that > design patterns are merely a convention and not a reusable component. My > argument is that something called a pattern is supposed to have a recurring > theme, some element of reusability, so that all subsequent implementations > of a pattern should require less effort than the first implementation. If > design patterns do not provide any reusable code then what is the point of > using them? > > > > I do not use design patterns as I consider them to be the wrong level of > abstraction. I am in the business of designing and developing entire > applications which comprise of numerous application transactions, so I much > prefer to use transaction patterns (refer to > http://www.tonymarston.net/php-mysql/design-patterns-are-dead.html and > http://www.tonymarston.net/php-mysql/transaction-patterns.html ) as these > provide large amounts of reusable code and are therefore a significant aid > to programmer productivity. > > > > What is your opinion? Are design patterns supposed to provide reusable code > or not? If not, and each implementation of a pattern takes just as much time > as the first, then where are the productivity gains from using design > patterns? > > > -- > Tony Marston > http://www.tonymarston.net > http://www.radicore.org > > > In my opinion, patterns primarily aid development of systems where more than one person will be working on it, or where more people may need to refer to the code in the future as a basis for something else. Programming essentially is about not reinventing the wheel all the time, by reusing ideas either as they stand, or as a base for improving upon. To an extent, I think every programmer uses design patterns, it's just a matter of how complex a pattern one uses, and how closely one stays to the original pattern. Thanks, Ash http://www.ashleysheridan.co.uk