View this PageEdit this PageAttachments to this PageHistory of this PageHomeRecent ChangesSearch the SwikiHelp Guide
Hotspots: Admin Pages | Turn-in Site |
Current Links: Cases Final Project Summer 2007

Discussion 2 - Ryan Nigro

Part 1 - What are the differences between creational, structural, and behavioral patterns?

First off, design patterns are "general solutions to a common problem in software design" (Wikipedia). Within these patterns, there are three major classifications that solve basic and common design problems: creational, structural, and behavioral.

Creational patterns attempt to control the instantiation of objects. They try to create objects simply, limiting complexity and design problems. The different creational patterns attack this problem by controlling object creation.

Structural patterns attempt to help guide the organization of objects and their functionality. Again, this class of pattern tries to simplify complex problems. However, structural patterns accomplish this through their definitions of relationships between objects.

Behavioral patterns are used for interaction between objects. Behavioral patterns introduce a layer of consistency that promotes compatability from one system to another. Behavioral patterns recognize common communication methods and attempt to define them.

Part 2 - Bridge Pattern

The Bridge Pattern attempts to "decouple an abstraction from its implementation so the two can vary independently" (Gamma). This is commonly done through inheritance, aggregation, and encapsulation. This in turn allows classes to be less dependent on outside classes. Essentially, this pattern promotes compatability of related objects by pushing the implementation of common methods to the individual objects.

This pattern interests me because it minimizes maintenance time! I've co-oped with Chick-fil-A for web development, and I've experienced firsthand the pain of extending objects that are dependent upon other objects for them to work. I see this pattern as one that helps to simplify future revisions of current code. It absolutely makes sense to me: I see this pattern as one that is a goal in almost any OO coding. I would love to use this pattern in my code, especially at this second milestone. From what I've heard of this class, I'm keen on anything that will help guarantee that my code will be easily extendable.

So far, I'll try to use this pattern to help on our implementation of how a presentation will change when a new layout or background is chosen. Hopefully, this will help with future development if a new property of the presentation is defined: i.e. global list decoration, font type, etc...

Link to this Page