Posts Tagged ‘patterns’

Implementation Patterns emerging

Monday, December 3rd, 2007

I recently read Kent Beck’s new book Implementation Patterns - it was a nice read and I guess it somehow strengthened my senses towards patterns a bit. Unfortunately it is written with Java in mind, and as we all know Patterns are language specific. The following can’t really be applied to Java as far as i know (having stopped writing in Java with 1.5).
So I discovered a kind of implementation pattern I had used a few times in the last weeks. Maybe everyone has already written about it but I want to stress that I discovered it myself :) Here it is:

The Selector Pattern

When to use it: When you have a complicated if-elseif-elsif-else or switch clause and want to replace it with something more elegant.

When not to use it: It works well for limited complexity. I things get more complex you may want to use class inheritance instead.

What it does: Put the each condition and the according logic into a hash. Then iterate through the conditions to find a match and execute its logic.

Example

Suppose you have a class Video that represents a video on youtube or some other hosting provider. Its purpose is to render the neccessary HTML tags to embed it into a document. The generated HTML differs depending on the hosting provider, e.g. youtube.com or vimeo.com. The code could be expressed like this:

Using the selector pattern it might look like this:

With only 2 providers this doesn’t make too much sense but with something like 5 your elsifs start to get really ugly and the selector pattern offers a more ligtweight way to replace these than creating an entire hierarchy of subclasses for every case.

re:publica: Interaction Design Patterns

Wednesday, April 11th, 2007

Nachdem Thilo sich gleich negativ zum dem Vortrag über Interaction Design Patterns (Folien sowie weiteres sollen demnächst online sein) geäußert hat, will ich nochmal kurz meinen Senf dazugeben. (Was ist eigentlich Interaction Design? - ) Ja, es ging sehr viel um Grundlagen und sehr wenig um praktische Beispiele oder konkrete Tips, aber da ich noch nie davon gehört (oder es wieder vergessen) habe (wer weiß das schon so genau? :)), war ich mit den gegebenen Anstößen eigentlich schon ganz zufrieden.

Nochmal kurz zum Inhalt: Die Idee der Interaction Design Patterns wird, wie auch bei den Programmier-Patterns auf die Architekten zurückgeführt, die sich schon Ende der 1960er damit beschäftigt haben. Der Grundegedanke ist, für immer wieder auftretende Probleme eine Lösung zu finden, die sich in der Anwendung bewährt hat, und diese zu dokumentieren. Trifft nun jemand auf so ein Problem, muss er theoretisch nur in einer Art Pattern-Library das passende Pattern finden und anwenden. Theoretisch deshalb, weil es zum einen gerade bei den Interaction Designern noch keine richtig umfangreichen Bibliotheken gibt, zum anderen, weil diese Pattern sehr abstrakt sind und erst auf die eigene Lösung angepasst werden müssen.

Ein Beispiel war, dass man, um die Registrierung/Login von Usern einer Community zu ermöglichen, einen Registrierungs-Link möglichst direkt unter den Login-Button setzt; ein anderes, dass man, will man Content von Users bewerten lassen, dazu das von Amazon bekannte 5-Sterne System verwenden solle.

Im Vortrag wurden 3 Links zu bestehenden Pattern-Libraries genannt. Gemerkt habe ich mir nur die Yahoo-Library. Die anderen sollten dann hoffentlich bald in den Folien zu finden sein. (Thilo hat sie, sehe ich gerade.)

Nach dem Vortrag hat mir Colin noch eine Flickr-Collection anvertraut: dort legt ein gewisser factoryjoe jedes mal, wenn er ein Problem besonders gut gelöst sieht, einen Screenshot davon ab. So eine Art visuelle Inspirations-Library also. Sehr schick.

re:publica, wir sind auch schon da

Wednesday, April 11th, 2007

So, mittlerweile sind wir auch auf der re:publica eingetroffen. Da jetzt eine kleine Pause entstanden ist, nutze ich diese gleich einmal. Es sind doch viele bekannt Gesichter vom barcamp 06 zu sehen. Aber mehr Frauen.

Der gerade gehörte Workshop zum Thema Interaction Design Patterns for Communities, war dann doch etwas unkonkreter als ich gehofft habe. Aber immerhin hat man jetzt einige Anhaltspunkt zum nachsurfen (hier, hier und hier).

Noch ein kleiner Wermutstropfen. Den Talk zu Blogmythen hab ich leider verpasst. Der war schon heute Vormittag. Aber genug andere werden wohl die Nachricht in die Welt hinaus bloggen: “Blogger nicht gleich Nerds, Blogs sind relevant und Blogs sind keine Gegenöffentlichkeit”