Hotspots: Admin Pages | Turn-in Site |
Current Links: Cases Final Project Summer 2007
Discussion 2 - James "Ben" Mitchell
Part One - Question 4 ("Describe the Portland Form. Why it is useful?")
The Portland Form is a way to express design patterns developed by three people from Portland in 1994. Unlike many design pattern forms that use outlines or other means for organizing information, the Portland Form is narrative, consisting of paragraphs of text. This aids understanding. Patterns expressed in Portland Form generally follow a specific format, but their narrative style makes them easier to understand, and the format used makes correlations easy, allowing connections to be made between groups of related patterns.
See http://c2.com/ppr/about/portland.html for more information.
Part Two ("Describe an Interesting Pattern")
In exploring design patterns, I found it interesting that there is no apparent "lower limit" on what a design pattern is. Anything is game, including things like the Proxy pattern (http://en.wikipedia.org/wiki/Proxy_pattern): the basis for proxy objects and concepts like the reference counter in a reference-counting memory management system. It basically describes a design where light-weight "interface" objects serve as intermediaries between classes requiring access to a "heavy" object and that object. It allows the programmer to save memory by avoiding the duplication of large objects, and it also prevents the headaches that come with keeping such objects "in sync" when changes occur.
I find this design pattern interesting in part because I consider the idea to be so fundamental that I wouldn't have considered it to be a design pattern at all until exploring the subject more thoroughly. I use this pattern regularly myself. The Proxy pattern underscores what seems to be a basic principle of design patterns: they can describe any pattern or process that is frequently repeated in different situations. Perhaps I find it most interesting because it states the obvious, but turns "common knowledge" into a process that can be applied formally and, through such an application, understood better. It's a simple example, but it exposes a different angle of computer science entirely if examined in the right light, and that to me is very interesting.
Links to this Page