A short description of what we do with respect to design patterns at HDM
We start with a short introduction to design patterns. The main resources like c2.com are explained. After that everybody picks one or more patterns which she will demonstrate in a short presentation. Experienced students usually pick more architecture level patterns like frameworks (EJB, J2EE) or system oriented pattern for concurrency and distribution. Not so experienced students select patterns from the "Gang-of-four" (GOF) book.
Demonstrations start with simple patterns from GOF. This way we lay a foundation of standard patterns. You will quickly recognize that they show up in many more complicated architectural patterns later on.
Here is a short list of topic we have covered:
Patterns describing frequent mistakes like the big ball of mud, god classes, analysis-paralysis. Interestingly every anti-pattern as a strong social or organisational component. Real life experinces make for a lively session. BTW. There are several books on anti-patterns like "Anti patterns", "Bitter Java" etc.
With J2EE desing being so popular this session tries to cover the major pitfalls and workarounds in the EJB area. Some architectural desing problems from J2EE itself like the connector architecture are also dealt with. There are good books available. Look at the resources section in the session on J2EE.
We had several session on advanced frameworking where generative approaches e.g. for OO-relational mapping or Value Object generation where shown. Sometimes students bring frameworks from their company and we have a look at them. E.g. a game framework or an EJB tooling framework.
Narrative and gestural patterns used in game designs to communicate events to the user. Very nice. Proof of patterns being truly universal
We have discussed plug-in technology, e.g. 3dstudiomax and how patterns help in this area (template-hook, adapter etc.) I'd love to take a look at the eclipse plug-in technology. Michael Taege is using it heavily in his diploma project and will give us a talk.
Model-view-controller, observer to MOM systems, GUI patterns and idioms. Next session a student will bring a particulary ugly piece of code which we will try to refactor. Feel free to bring your own monsters.
I am looking for a good piece of demonstration code that either can be refactored easily using patterns or which already contains easily detectable patterns. Some students want to get practical and I can understand them. Unfortunately the short seminar time leaves litte room for it.