|
|
|
|
Useful books:
Horstmann, Cay S.:
OO Design & Patterns
Cooper, James W:
The Design
Patterns Java Companion
|
|
Lecture:
|
|
Lesson 1 Introduction (Chapters 1 and 2 and Appendix A)
Overview of the course
Why study OOD
Java Review
Homework #1: (there is no homework assignment)
<Back>
|
|
Lesson 2 Introduction to Object-Oriented Design
(summary - to be supplied)
Homework #2: (there is no homework assignment)
<Back>
|
|
Lesson 3 Classes, Frameworks and Patterns
Java Review (continued) Frameworks The GCB application framework
Communications.java
InputField.java
ListEntry.java
ListHead.java
ListObject.java
ListObjectHead.java
MainGUI.java
SolicitGUI.java
StateMachine.java
StateMachineTimer.java
StateVariable.java
Trace.java Patterns
Homework #3: (there is no homework assignment)
<Back>
|
|
Lesson 4 Creational Patterns (Chapter 3)
Discussion of each of the Creational Patterns
Singleton - unique instance of the class
Factory Method - build the object from set of classes
Abstract Factory - build the object from a set of Factory Methods
Builder - build the object from a set of objects
Prototype - build clones of an object
Review related links
Homework #4: (there is no homework assignment)
<Back>
|
|
Lesson 5 Discussion of Creational Patterns (The Design
Patterns Java Companion - Chapter 1)
Java Companion
Homework #5: (in class discussion)
- (Cooper) Consider a
personal checkbook management program like Quicken. It manages several bank
accounts and investments and can handle your bill paying. Where could you use
a Factory pattern in designing a program like that?
- (Cooper) Suppose are
writing a program to assist homeowners in designing additions to their
houses. What objects might a Factory be used to produce?
- (Cooper) If you are
writing a program to track investments, such as stocks, bonds, metal futures,
derivatives, etc., how might you use an Abstract Factory?
- (Cooper) Some
word-processing and graphics programs construct menus dynamically based on
the context of the data being displayed. How could you use a Builder
effectively here?
- (Cooper) Not all
Builders must construct visual objects. What might you use a Builder to
construct in the personal finance industry?
- (Cooper) Suppose you
were scoring a track meet, made up of 5-6 different events? Can you use a
Builder there?
<Back>
|
|
Lesson 6 Structural Patterns (Chapter 4)
Adapter Pattern - Adapting an existing interface to an existing client
Bridge Pattern - Set of implementations using the same interface
Composite Pattern - Hierarchy of implementations (objects) with same interface
Decorator Pattern - Hierarchy with differences
Facade Pattern - Easy interface to a complex problem
Flyweight Pattern - Set of singletons
Proxy Pattern - Different implementations for same object
Review related links
Homework #6: (there is no homework
assignment)
|
|
Lesson 7 Discussion of Structural Patterns (The
Design Patterns Java Companion - Chapter 4)
(Cooper
examples)
Select one of the seven patterns listed below for discussion in class
Use as the object of the discussion the examples for the patterns in the
Cooper examples
found on the his web site Design Patterns
The discussion should include:
1. Why the example is good (or bad)?
2. Clearly describe how the example uses the pattern, or why it does not use
the pattern.
3. Describe (show) how the code fits together.
4. Show the working example (execute the compiled code)
Homework #7: (in class discussion)
- (Cooper) Adapter
Pattern example
- (Cooper) Bridge
Pattern example
- (Cooper) Composite
Pattern example
- (Cooper) Decorator
Pattern example
- (Cooper) Facade
Pattern example
- (Cooper) Flyweight
Pattern example
- (Cooper) Proxy Pattern
example
<Back>
|
|
Lesson 8 (Chapter 5)
Chain of Responsibility Pattern
Command Pattern
Interpreter Pattern
Iterator Pattern
Homework #8: (in class discussion)
(continued from lesson 7)
<Back>
|
|
Lesson 9 (Chapter 5)
Mediator Pattern
Memento Pattern
Observer Pattern
State Pattern
Homework #9: (in class discussion)
(continued from lesson 7)
Outline of "your framework)
"Your framework" is supposed to solve some general problems that you encounter
when you program. It is a tool kit that you use whenever you code a new
application or component. It is your personnel programming widget.
1. What are the problems that "your framework" will address?
2. What are the patterns that you feel are appropriate for each problem?
3. What is the example you will use to demonstrate "your framework"?
Four individuals should choose one of the four patterns discussed in lesson 8
and perform an analysis of the example from Cooper's zip file (see lesson 7).
<Back>
|
|
Lesson 10 (Chapter 5)
Strategy Pattern (pdf)
Template Method Pattern (pdf)
Visitor Pattern (pdf)
Behavioral Patterns (pdf)
Homework #10: (in class discussion)
Four individuals should choose one of the four patterns discussed in lesson 9
and perform an analysis of the example from Cooper's zip file (see lesson 7).
(Two individuals will have done a presentation in both lesson 9 and lesson
10.)
|
|
|
Lesson 11 (Chapter 5)
Select two of the eleven patterns listed below for discussion in class
Use as the object of the discussion the examples for the patterns in the
Cooper examples
found on the his web site Design Patterns
The discussion should include:
1. Why the example is good (or bad)?
2. Clearly describe how the example uses the pattern, or why it does not use
the pattern.
3. Describe (show) how the code fits together.
4. Show the working example (execute the compiled code)
Homework #11: (in class discussion)
- (Cooper) Chain of
Responsibility example
- (Cooper) Command example
- (Cooper) Interpreter example
- (Cooper) Iterator example
- (Cooper) Mediator example
- (Cooper) Memento example
- (Cooper) Observer
example
- (Cooper) State example
- (Cooper) Strategy
example
- (Cooper) Template
Method example
- (Cooper) Behavioral
example
<Back>
|
|
|
Lesson 12 (Chapters 3, 4, and 5)
Review of the patterns
Six Creational patterns
Seven Structural patterns
Eleven Behavioral patterns
Select three of the twenty-four patterns (one from each category) for discussion in class
Use as the object of the discussion the examples for the patterns in the
Cooper examples
found on the his web site Design Patterns
The discussion should include:
1. Why the example is good (or bad)?
2. Clearly describe how the example uses the pattern, or why it does not use
the pattern.
3. Describe (show) how the code fits together.
4. Show the working example (execute the compiled code)
Homework #12: (in class discussion)
- (Cooper) Creational
pattern
- (Cooper) Structural
pattern
- (Cooper) Behavioral
pattern
<Back>
|
|
|
Research project
Research paper:
The research paper is to be 10
to 20 pages describing your personal framework. The paper should be divided
into standard sections (introduction, body, and conclusion). The
introduction should give an overview of the framework objectives and salient
problems that are addressed in the framework. The body of the paper should address the roots of the
framework
(problems and impetus), the use of the framework, and
classes that are defined. The body should also give an example of
use of the framework in a working application. The conclusion should address its scope
and limitations.
Research report:
The research report should be
a presentation of 30 minutes or less. If possible, a demonstration of
the framework should be given, or screen shots. The presentation will be
given on the last class and will replace the final exam. The research
report is independent of the research paper. (The paper cannot be read
as the report.)
<Back>
|
|
Related Links:
CSCI 253
Glossary
Federal
Government Glossary
OSI Reference
Model
The Internet Engineering Task Force
Connected: An Internet
Encyclopedia
RFC Editor
CERT Coordination Center
Design Patterns Tutorial
The Design
Patterns Java Companion
CS 242: Developing
Object-Oriented Software with Patterns and Frameworks
Other Pattern
URLs
http://www.exciton.cs.rice.edu/JavaResources/DesignPatterns/
Design Patterns: Elements of Reusable Object-Oriented Software
Object Oriented
Software Development (2006-2007) [SSEL]
CMSC491D
Design Patterns In Java
Design Pattern : Java examples (example source code) Organized by topic
Java
World Design Patterns
Java Developers Journal - Design Patterns
Java World Composite Pattern
The
Decorator Pattern
The Mediator
Pattern Can Organize an Object-Oriented Application
Using
the Strategy Design Pattern for Sorting POJOs
The
Template Method Pattern
CS 635
Advanced Object-Oriented Design & Programming
Effective OO
Programming
Visitor
Pattern
<Back>
|
|
This web page format is compliments
of a prior student Yang Dong (last update by George
Blankenship on
April 04, 2007)