The Hillside Group Patterns Home Page
Welcome to the patterns home page. It is a source for information about all aspects of software patterns and pattern languages. For a pattern definition, click here.
Patterns and Pattern Languages are ways to describe best practices, good designs, and capture experience in a way that it is possible for others to reuse this experience. The Hillside Group takes pleasure in sponsoring many different PLoP conferences that are provided for the betterment of the pattern community.
Patterns HomePage @ hillside.net
Software Design Patterns
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.
The Gang of Four (GOF) patterns are generally considered the foundation for all other patterns. They are categorized in three groups: Creational, Structural, and Behavioral.
Design Patterns @ data & object factory
Huston Design Patterns
Non-Software Examples of Software Design Patterns
Software design patterns have roots in the architectural patterns of Christopher Alexander, and in the object movement. According to Alexander, patterns repeat themselves, since they are a generic solution to a given system of forces. The object movement looks to the real world for insights into modeling software relationships. With these dual roots, it seems reasonable that software design patterns should be repeated in real world objects. This paper presents a real world, non software instance of each design pattern from the book, Design Patterns - Elements of Reusable Object-Oriented Software. The paper also discusses the implications of non-software examples on the communicative power of a pattern language, and on design pattern training.
The Interaction Design Patterns Page
This page contains information about resources related to pattern languages for interaction design (of which user interface design is a subset), and a few links to more general papers that may be of use to interaction designers. I also include some links to organizational design patterns, which I find hard to disentangle from interaction design. Interested parties should also see Jan Borcher's HCI patterns page. Those interested in other uses of pattern languages should see the Patterns Home Page, which is the most comprehensive source of information, and also Brad Appleton's Software Patterns Links.
The Interaction Design Patterns Page by Tom Erickson
Interaction Design Patterns
Web, GUI and mobile interaction design paterns.
Interaction Design Patterns @ welie.com
UI Patterns and Techniques
Each of these patterns (which are more general) and techniques (more specific) are intended to help you solve design problems. They're common problems, and there's no point in reinventing the wheel every time you need, say, a sortable table -- plenty of folks have already done it, and learned how to do it well. Some of that knowledge is written up here, in an easily-digestible format.
By the way, when I say "UI," I mean Web sites, desktop applications, and everything in between (Web forms, Flash, applets, etc.). I believe that over the next few years, Web-based UIs will become more richly interactive than they are now, and the smartest Web designers will use the desktop world's hard-won knowledge of how to design good interactive software. Likewise, desktop applications will gradually look more like Web sites, with better graphic design and more Web-style navigation. I will make no assumptions about how or when they will converge -- they may not, ultimately -- but stylistically, there is some common ground already. Thus, you will see examples from both worlds in here.
These patterns are intended to be read by people who have some knowledge of UI design concepts and terminology: dialogs, selection, combo boxes, navigation bars, whitespace, branding, and so on. It does not identify widely-accepted techniques such as wizards, as you probably already know what they are.
UI Patterns and Techniques @ time-tripper.com
Anyone familiar with the book of patterns by the Gang of Four knows that the patterns presented in the book represent elegant solutions that have evolved over time. Unfortunately, extracting these patterns from legacy code is impossible, because nobody knew that they were supposed to be using these patterns when they wrote the legacy code. Hence, this work is a catalog of patterns for the masses. The patterns presented here represent abundant solutions that have endured over time. Enjoy reading the patterns, but please don't use them!