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 - Robert Simpson

Robert Simpson - gtg407q

Part 1:

There are three specific types of “gang of four” patterns that we will focus on; creational, structural and behavioral.
( http://www.dofactory.com/Patterns/Patterns.aspx )
Creational patterns deal with the mechanisms behind object creation. These types of patterns take into account a situation and create objects in a manner suitable. This tries to eliminate design problems caused by poor object creation and minimalize complexity. Structural patterns deal with the relationships between entities. This pattern looks at the object oriented relationships between the different parts (classes) of the program and tries to minimalize problems by making this part as precise as possible. In behavioral patterns the key is to identify any common communication problems between objects within the program. To realize the patterns behind these problems will help the programmer develop a solution which increases the flexibility in carrying out communication.
http://en.wikipedia.org/wiki/Design_pattern_(computer_science)

The Portland Form of design contains a system of design patterns that all work together. This pattern starts off by stating a problem and proposing a component to fix the problem. The designer will then identify other problems or forces surrounding this problem and rank them stronger or weaker than the problem at hand. This will set a time line of work to be done, from the strongest to the weakest problem. There is then a summary section which explains the problem you considered and gives the names of all patterns used to solve this problem. This pattern addresses the issue that most of the time one distinct design pattern does not suffice when solving a problem. (http://c2.com/ppr/about/portland.html )

Part 2:

One particularly interesting pattern I found was Abstract Factory. This is a nice pattern because it lets you create a suite of classes with only having to make concrete decisions at instantiation time. This lets us make a set of related classes without having to know which will be instantiated. To use this pattern you will first make an abstract class and define factory methods. These methods will be used to answer instances of concrete subclasses which will use them. The choice of subclass is not important at this time. This pattern makes sense to me because it helps to design a set of methods and classes to be used without having to say exactly in what order they will be called. This lets you organize your ideas while still leaving things open for coding time. I personally like to figure things out in the midst of coding and this would let me organize my thoughts while not tying myself down to one specific design.
http://www.object-arts.com/EducationCentre/Patterns/AbstractFactory.htm

I chose to read Mark Shalda's discussion. He chose the same question to part 1 as I did. He basically said the same thing as me, though his answer for Structural patterns varied a little bit. I defined them as the relationships between the parts or classes of a program while he said they group objects into more complex systems. I thought the point of that pattern type was to make the relationship between these parts as simple as possible, not more complex. In his part 2 he discussed composite patterns. This pattern deals with structure trees and though I had no previous knowledge of the pattern it was clear how it works. Out responses to part 2 were similar though we chose different patterns.

Links to this Page