My Patterns Blog

Saturday, April 30, 2005

Design Patterns Playing Cards

Lately, in lecture, we played to Patterns Poker.

What is this game ?

The Patterns Poker is a game rather similar to the poker but where all cards of a classical game were replaced with different possible designs patterns (factory, visitor, builder).

How to play it ?

First, cards are dealt to players. 5 cards per player. Then, each player studies his card and exchanges cards that he doesn’t want, with the deck. When all exchanges are finished, each player invents a story using patterns of his cards. Afterwards that, players tell their story to others. At the end, the group decides on the best-story

My personal opinion

I think that this game is a good means to learn patterns while having a good time. However, it can sometimes prove to be rather difficult when we start to learn design patterns or when we have not enough imagination and adaptation of abstract elements to a concrete case.

More personally, it is not a technique which works with me. I prefer learning patterns across pure programming that by speech but there, it is my computer brain which speaks :)

Other games

There are other games that you can play to learn design patterns.

Patterns Cocktail: it’s a game where you have to discover what is the design patterns card which you have on your forehead.

Name The Patterns: it’s a game where you have to describe a Patterns without giving too much clues. For example: if you have the “Builder” card, you should not use the word “Build”.

This game seems fun but in the first, everybody are very stupid, so I think I prefer the second (^_^)

more on Design Patterns Playing Cards

Friday, March 25, 2005

A bit of reading

Last week, by walking in a library I came across on a book of Craig Larman: “UML et Design Patterns” (it was a french edition). After some researches, it would seem that this person is a important specialist in UML and Design Patterns seen the number of books that he wrote. I therefore borrowed the book and I began reading passages.

Although the book is aimed at more project manager or concerned and/or confirmed developers, it really remains very pedagogic behind its technical side. A study of unique case is followed throughout chapters and acts as reference for every example. However, it should not expect to find an exhaustive study of notation UML or ultra-complete diagrams, in effect, the book applies primarily oneself to present the interest of recourse to UML in a cycle of iterative development as Unified Process. In the Patterns’ part, the author treats models of responsibilities (Pattern GRASP) and GoF (gang Of Four).

In conclusion, I would say that it is a good book though a bit difficult by instant but always very pedagogic. On the contrary, I found shame that there is not CD with the book and containing of source code to continue study ourselves.

Thursday, March 17, 2005

Review of a website ...

The other day, in lecture, we saw different existent patterns (visitor, template, builder, factory …). However, lessons are rather theoretical and I lacked concrete examples. That's why, I left in search of information on the web and that I found this website.

It’s a website on C# and .NET training for developers but there is a very good section on Design Patterns [here]. You can find all patterns of Gang Of Four and for each, there are: a definition with a frequency of use (very important to know which are the most used patterns), a UML diagram, participants of this patterns with a example and finally, a source code in C#.

So, in conclusion, I think it’s a good website for every beginner who has difficulties with patterns (like me…). The only defect is the lack of source code in other language apart from C# but this last is very similar to Java.


I added the address in my links.

Saturday, March 05, 2005

Patterns for Change

There is another category of Patterns than those used for the development of software. These are Patterns for Change. They are used for the installation, management and the durability of a project that it is within a firm, an organization or simply in the common life. These Patterns can be divided into four themes:

            - Throughout
            - Early
            - Later
            - Resistance

To learn it, we organized an exercise where we had to manage a transfer of a department within the university. So with the aid of post-it, we established, individually, patterns that we have to follow to achieve the project. Then, we confronted our patterns and our opinions.

I find that these patterns are very useful because they allow to supervise a plan by managing the project during all its life cycle. On top of that, they often give us ideas of methods that we even had not imagined before.

After the lecture, I do some researches on the web to give information on Patterns for Change but I found quite no website which dealt with it, I think that it is going to be necessary to turn to books! :)

Friday, February 25, 2005

Let's go!

Hello and welcome on my blog which talks about Patterns!

Then there, I already see some who open them eyes, and others who get ready to close their explorer … But hop, do not leave, I am going to begin with the beginning:

What is “Patterns for software development”?

According to the website http://www.dofactory.com/:

Design patterns are recurring solutions to software design problems you find again and again in real-world application development. Design patterns are about design and interaction of objects, as well as providing a communication platform concerning elegant, reusable solutions to commonly encountered programming challenges.


Okay, we (especially "I" ^_^) understand a little better. Patterns is sensible help us to solve problems already met by reusing pieces already accomplished before.

But something upsets me. It is now 4 years since I study computer development and I have never heard spoken of Patterns. A mistake of my teachers or then Patterns comes from a marginal philosophy?

Therefore, I left to find answers searching explications and pieces of various codes. And it is there, that I realized that I had always made Patterns! Since I develop in object language there, I use patterns without knowing it! Wow what amazing news!