30 Pages

OO_Patterns_DP1

Course: CS 445, Fall 2009
School: Illinois Tech
Rating:
 
 
 
 
 

Word Count: 1358

Document Preview

Pattern CS585 1/ OO Design Generic Design Activities Find Classes Factor objects form classes Define class interfaces Define Inheritance Hierarchies Find relationships between class Goals Avoid Redesign Keep your design open Reuse as much as possible Reuse classes Reuse solutions "Proven ones" CS585 2/ Benefits of Design Patterns Look for Recurring Patterns of classes and...

Register Now

Unformatted Document Excerpt

Coursehero >> Illinois >> Illinois Tech >> CS 445

Course Hero has millions of student submitted documents similar to the one
below including study guides, practice problems, reference materials, practice exams, textbook help and tutor support.

Course Hero has millions of student submitted documents similar to the one below including study guides, practice problems, reference materials, practice exams, textbook help and tutor support.
Pattern CS585 1/ OO Design Generic Design Activities Find Classes Factor objects form classes Define class interfaces Define Inheritance Hierarchies Find relationships between class Goals Avoid Redesign Keep your design open Reuse as much as possible Reuse classes Reuse solutions "Proven ones" CS585 2/ Benefits of Design Patterns Look for Recurring Patterns of classes and communicating objects. These patterns : Solve a specific design problem Provide an Elegant, Reusable, and Flexible solutions Each Design Pattern; Names, Explains, and Evaluates an important and recurring design problem in OO systems AND Provide an Elegant solution to the problem in its context. Benefits: Reuse Choose design alternatives "get it right faster" CS585 3/ Christopher Alexander et al. Oxford Univ. Press 19? "Each pattern describes a problem which occurs over and over again in our environment, and then describes the core of the solution for that problem, in such away that you can use this solution a million times over, without ever doing it the same way twice." Christopher proposed 250 Patterns for Architectural Design Each pattern represents a generic reusable solution to a recurring problem CS585 4/ Elements of a Design Pattern Pattern Name A handle used to describe the design problem, its solution and consequences in one word Problem When to apply the pattern Explain the context Solution What are the Elements that make up the design, their relationships, responsibilities and collaboration Consequences Results and tradeoffs CS585 5/ Elements of a Design Pattern Design Patterns are "Descriptions of Communicating Objects that are customized to solve a general design problem in a particular context". The recurring aspects of designs are called design patterns. A pattern is the outline of a reusable solution to a general problem encountered in a particular context Many of them have been systematically documented for all software developers to use A good pattern should Be as general as possible Contain a solution that has been proven to effectively solve the problem in the indicated context. CS585 6/ General Example MVC Pattern Decouples views and models by establishing subscribe / notify protocol between them Views represent the state of the model Model contains data values Controller mediates between views and model Page 5 for figure CS585 7/ Observer Pattern MVC Architecture The model object holds the information Views objects draw the visible parts of the view (or do something else) Display number in tables Display a bar chart Each view has a controller which is an object that processes user interaction Mouse or keyboard events CS585 8/ Observer Pattern Controller insertText Model View notify getText repaint CS585 9/ Architectural patterns (architectural style) MVC Broker COM Common Object Request Broker Architecture (CORBA) multi-layer pipe and filter (transformational architectural pattern, transformational architecture) transaction-processing CS585 10/ multiplicity patterns many-to-many many-to-one one-to-many one-to-one CS585 11/ Describing Design Patterns Pattern Name Intent what does the DP do? Also known as Motivation scenario shows how the classes involoved solve the problem Applicability situations in which the DP can be applied Structure UML/ OMT Participants classes and/or objects and responsibilities Collaboration Consequences Implementations Sample code Know uses Related patterns CS585 12/ Software Design Patterns Published by Gamma et al. 23 commonly used design patterns Creational Patterns Object creation Structural Patterns Static composition of classes Behavioral Patterns Dynamic interaction among objects See Page 8 for a complete list of patterns CS585 13/ Design Patterns Organization Criteria 1 Purpose reflects what a pattern does? Creational Patterns, Deals with Object creation Structural Patterns, deal with the composition of classes and or objects Behavioral Patterns, show the interaction of objects and their responsibilities Criteria 2 Scope whether a pattern applies to objects or classes (Compile time vs. Run time) Class Patterns Deals with relationships between classes and their subclasses thru Inheritance thus Static or compile time structure Object Patterns Deals with object relationships at run time Dynamic run time CS585 14/ Design Patterns Organization Creational Factory Method singleton Abstract Factory Builder Prototype Purpose Structural Behavioral Adapter Interpretor Template Methos Composite Visitor Facade Chain Of Responsibility proxy Command Bridge Interpreter Adapter Memento Decorstor Observer Flyweight State Strategy Mediator Class Object Scope CS585 15/ Notation Review Class Object Parent Class AbstractClass Operation() An class abstract is a class whose main purpose is to define a common interface for its subclasses and it can't be instantiated SubClass Concrete Class Operation() Implementation Pseudocode CS585 16/ OO Design Discussion Compile Time Code structure is frozen Classes are structured in fixed inheritance relationships Run Time Rapidly changing networks of communicating objects Very independent from each other CS585 17/ OO Design Discussion Class Inheritance Defines how the object is implemented The class defines the object's internal state and the implementation of its operations Also defines the Object Type Object Type Only defines Interfaces the set of requests the object can respond to CS585 18/ OO Design Discussion Class Inheritance Defines object's implementation in terms of another object's implementation Defines new objects in terms of old ones Interface Inheritance "Subtyping" Define when an object can be used in place of another (Polymorphism) Shape Example Shape is an abstract class Two DimShape and ThreeDimShapes are 2 abstract classes that inherit from Shape class They define an abstract method draw(); Rectangle class implements TwoDimShapes class and provide implementation to draw a rectangle. At run time you can use shape to draw the intended shape CS585 19/ OO Design Discussion Class Inheritance Define implementation of one class in terms of another Reuse by sub-classing White-box reuse, since the parent class is visible to the subclasses Static compile time since its supported by a programming language Object Composition An alternative to class inheritance to solve the encapsulation problem New functionality is obtained by assembling or composing objects to a more complex functionality (Car object is composed of Engine, Transmission, Body and Wheel Objects) +ve easy to modify the at run time implementation "Override" +ve Dynamic at run time +ve does not break encapsulation -ve more objects are needed and thus could have performance side effects -ve can't change implementation -ve breaks encapsulation Both are techniques for reusing functionality in OO systems CS585 20/ OO Design Discussion Delegation A way of making composition as powerful for reuse as inheritance Two objects are involved in handling a request Receiving object Delegates operations to its delegate In inheritance subclasses deferring requests to parent object (key word super() in java) This key word to refer to the receiving object In delegation the receiver passes itself to the delegate to let the delegated operation to refer to the receiver Dynamic CS585 21/ OO Design Discussion - Delegation Delegation Example Window class reuses the behavior of the Rectangle class by keeping a Rectangle instance variable and delegating Rectangle specific behavior Window Area() rectangle Rectangle Area() width height Return rectangle -> Area(); Return widt...

Find millions of documents on Course Hero - Study Guides, Lecture Notes, Reference Materials, Practice Exams and more. Course Hero has millions of course specific materials providing students with the best way to expand their education.

Below is a small sample set of documents:

Illinois Tech - CS - 445
ObjectOriented Design and Programming CS445 Threads in JavaIllinois Institute of TechnologyThreadsA Thread is single line of execution or a program unit that is executed independently of other parts of the program JVM executes each
Illinois Tech - CS - 445
Abstract Classes and Methods InterfacesCS445 Object Oriented Design and Programmingabstract Classes and MethodsAn abstract class is a class that is not completely implemented. Usually, the abstract class contains at least one abstract me
Illinois Tech - CS - 445
JavaCS445 Object Oriented Design and ProgrammingTopics Class Basics and Benefits Creating Objects Using Constructors Calling Methods Using Object References Calling Static Methods and Using Static Class Variables Using Predefined Java
Illinois Tech - CS - 445
Java AppletsCS445ObjectOrientedDesignandProgrammingTopics Applet Structure Executing an Applet Applet Life Cycle Drawing Shapes with Graphics Methods Using Colors and Fonts Etc.CS445ObjectOrientedDesignandProgrammingAppletsExecute
Illinois Tech - CS - 445
Design and Implementation ConceptsCS445 Object Oriented Design and ProgrammingDesign Concepts Public and Helper Classes Ordering Class Members Class Organization Design Guidelines Javadoc Canonical Form of Classes No-arg Construct
Illinois Tech - CS - 480
CS-480 Logical Agents and InferenceAIMA, Chapter 7Outline Knowledge-based agents Wumpus world Logic in general - models and entailment Propositional (Boolean) logic Equivalence, validity, satisfiability Inference rules and theorem proving
Illinois Tech - CS - 441
Grading Criteria for Project Part-B FALL 2007NAMES: _Design:1. javadocs : authors and version variables all methods all classes 2. DESCRIPTIONS IN WORD DOCUMENT:Points: 4 1 1 1 1 1--Total 5Code and Presentation: FUNCTIONALITY/APPEARANCE1.
Illinois Tech - CS - 441
Grading Criteria for Project Part-B SPRING 2008NAMES: _Design:1. javadocs : authors and version variables all methods all classes 2. DESCRIPTIONS IN WORD DOCUMENT:Points: 4 1 1 1 1 1--Total 5Code and Presentation: FUNCTIONALITY/APPEARANCE1
Illinois Tech - CS - 201
CS201 In Class Assignment - Form groups of 3 or 4 students. Your group will be assigned an example implementation of the below problem (A, B or C). I have also emailed all three implementations to everyone. By the end of class today, have your group
Illinois Tech - CS - 201
CS201 EXAM 1 Fall 2007 NAME _ 1. (20 points) Write a java code segment that will determine if the digits of a user entered, threedigit number are all odd, all even, or mixed odd and even. You can assume the user enters an integer.
Illinois Tech - CS - 201
CS201INCLASSASSIGNMENTNAME_SomepracticeonRecursion Writerecursive methods forthefollowing: 1. Calculate thenth term inthefibonaccisequence 2. Find thelargest integer inan array and return itsindex 3. Doalinear search forakeyonan array ofintegers,
Illinois Tech - CS - 201
CS201Fall2007EXAM#3NAME_ 1)(25points)WriteaVehicleclassforatollbooth collection system (standard cartollof50centsfor automatic,$1formanual) with thefollowing: Necessary constants Instance variables fortheVehicle's o tolltype String,A forautomatic,M
Illinois Tech - CS - 201
CS201EXAM2Fall2007 NAME_ 1.(50points)Writeaprogram that plays aguessing game. Thegame willpickarandom number between 2 setvalues (alow limitand high limit)and prompt theuser toguess that number untilheorsheguesses correctly.On each wrong guess,thega
Illinois Tech - CS - 201
CS201INCLASSASSIGNMENTNAME_Designandimplemementaclassforastopwatch.Allowtheusertostart,stopandresetthestopwatchanddisplay (toString)thetimeinseconds. ExtraCredit:Display(toString)thetimeashh:mm:ssLimitthetimeyoucancountto24hours,thenrolloverto0ag
Illinois Tech - CS - 201
CS201INCLASSASSIGNMENTNAME_SomepracticeonInhertiance Suppose you wanted aclassthat would allow you touse fractions inaprogram (weareNOT reducing orsimplifying fractions).Remember avalid fraction isan integer over anonzero integer. Wewant both a
Illinois Tech - CS - 201
CS201 EXAM 2 MAKEUP Fall 2007 NAME _ 1. (50 points) Write a program that plays a guessing game. The game will pick a random number between 2 set values (a low limit and high limit) and prompt the user to guess that number until
Illinois Tech - CS - 201
CS201 PLACEMENT EXAM 45 MINUTES NAME _ 1. Please write code / pseudocode for two new functions for the "ThreeIntMath " class: "polynomial" that assumes the three integers x, y, z, for an object are the integer coefficients of a pol
Illinois Tech - CS - 115
CS 115 FALL 2007 Lab Problem #12 CD Compilation Part A, IndividualIndividually read the memo and article below.Internal Memo Brand New Sound Co. To: New Hire Engineering Team From: Billy Valens, Vice President of Marketing Re: Product Mixing Hel
Illinois Tech - CS - 441
SPRING 08 Project B Version 1You must answer the questions below which are worth 10 points. Every point you loose by not giving the correct answer gets subtracted from your grade for your project during your presentation. Question 1: In a a RMI dis
Illinois Tech - CS - 116
102726710 graduated104685526 graduated105708840 inactive106703604 inactive108788932 inactive110724715 graduated112482628 inactive-n113740426 graduated115863141 graduated116729274 inactive117669891 graduated118703144 inactive118726395 inac
Illinois Tech - CS - 116
IIT - CS116 Lab 0file:/C|/Bauer/CS116/www/labs/Lab0/Lab0.htmCS 116 - Lab 0 Objectives:1. 2. 3. 4. 5. 6.Tasks:Enter, compile, and run simple Java programs without using an IDE. (the standard "Hello World!" first program). Recognize syntax err
Illinois Tech - CS - 116
Encapsulation & Selection1EncapsulationClass implementation details are hidden from the programmer who uses the class. This is called encapsulation Public methods of a class provide the interface between the application code and the class object
Illinois Tech - CS - 116
Chapter 9 TopicsAtomic Data Types q Composite Data Types q One-Dimensional Arrays q Examples of Declaring and Processing Arrays q Arrays of Objects q Arrays and Methods q Special Kinds of Array Processingq1Java Primitive Data Typesprimitivein
Illinois Tech - CS - 116
Chapter 10 Inheritance, Polymorphism, and Scope1Chapter 10 Topicsq qq q q q q qInheritance Inheritance and the Object-Oriented Design Process How to Read a Class Hierarchy Derived Class Syntax Scope of Access Implementing a Derived Class Copy
Illinois Tech - CS - 116
Chapter 11 Array-Based Lists1Chapter 11 Topicsqq q q qq qInsertion into and Deletion from an Unordered List Straight Selection Sort Insertion into and Deletion from a Sorted List Abstract classes Searching s Sequential s Binary Complexity o
Illinois Tech - CS - 116
q Chapter q Writing7.8 - Exceptionsto a File Complexityq Algorithmic1ExceptionsqIllegal operations at run time can generate an exception, for example:s ArrayIndexOutOfBoundsException s ArithmeticException s NullPointerException s InputM
Illinois Tech - CS - 116
Chapter 8 Object-OrientedSoftware Design and Implementation TopicsSoftware Design Strategies q Objects and Classes Revisited q Object-Oriented Design q The CRC Card Design Process q Functional Decomposition q Object-Oriented Implementationq1So
Illinois Tech - CS - 116
1.(5 points) Understand and correct Java compile errors and runtime errors (conditions and iteration). Programming and Problem Solving with Java, Page 271, #10if (Math.abs(x2-x1)<.00001) System.out.println("Slope undefined");else { m=(y2-y1)/(
Illinois Tech - CS - 116
1. (10 points) Determine the time complexity of simple algorithms. PREDICTED WHYSELECTION SORT n^2 2 nested loopsRANDOM inner loop n, n-1, n-2, n-3, etc n+(n-1)+(n-2)+. =
Illinois Tech - CS - 116
1.(6 points) Explain the basics of the concept of recursion. 1. (A) The number of elements in arr that are less than num 2. (D) 43211234 3. (D) 2432.(14 points) Design/Code an object for a multi-object application containing inheritance.
Illinois Tech - CS - 116
0.0178173520.0240969550.0482115620.0697062060.0787579870.0821025160.0851559690.0887409080.094427750.1313963520.133466550.1475134060.1476946620.1611041470.1623873830.1654102610.1658394070.1789697390.1838542270.1955364310.210542828
Illinois Tech - CS - 116
1. (20 points) Design a user-defined object containing an array. (CONTINUATION OF LAB 2,5,6)There is ALOT of flexibility on student answers on this one.Key idea is how they are protecting the cases from EVERYONE until you open a case.public cla
Illinois Tech - CS - 116
CS 116 SPRING 2008 , SECS. 3-6 LAB #10 ARRAYLIST SOLUTIONExercise #1 = #4: See ExerciseApp in suggested coded solution. Solution: I took a List class and derived a UserList class and overrode some methods. Most students will just create a UserLis
Illinois Tech - CS - 116
CS 116 SPRING 2008 , SECS. 3-6 LAB #5 ARRAYS SOLUTION Homework: Programming & Problem Solving with Java,2nd Ed, Dale & Weems: p. 518: #1, #2, #3 Exercise #1: See coded solution. Exercise #2: See coded solution. Write the pseudocode to solve this pr
Illinois Tech - CS - 116
CS 116 SPRING 2008 , SECS. 3-6 LAB #3 SELECTION + DEBUG SOLUTIONHomework: Programming & Problem Solving with Java,2nd Ed, Dale & Weems: (1 point) p. 270: #6, 9, 10, 116.if (year % 4 = 0) System.out.print(year + " is a leap year."); else { year
Illinois Tech - CS - 116
CS 116 SPRING 2008 , SECS. 3-6 LAB #9 POLYMORPHISM Objective 1. 2. 3. 4.To learn to use polymorphism. To learn to read and handle an input file with two input formats. To learn to use an Abstract class. To learn the difference between private and
Illinois Tech - CS - 116
CS 116SPRING 2008 WEEKLY LAB PROBLEM #11 SEARCHING AND SORTING AN ARRAY LIST SOLUTION Ex. #1: See exercises package. Test valuepluShort.txtSearch result before selection sort:found 3016 at: 56 found 3082 at: 28 found 3251 at: -1 found 3161 at: 48
Illinois Tech - CS - 116
CS 116 SPRING 2008 , SECS. 3-6 LAB #2 USER-DEFINED CLASS + APPLICATION Objective: 1. Learn to write java arithmetic expressions. 2. Learn to use explicit casting. 3. Learn to use static methods from the Math API 4. Learn to use precedence of operat
Illinois Tech - CS - 116
CS 116 SPRING 2008, Sec. 3-6 LAB #1 USER-DEFINED CLASS WITH STATIC METHODS SOLUTION Homework: p. 100, #15: (1 point)This program may be corrected in several ways. Here is one correct version: public class LotsOfErrors { public static void main(Stri
Illinois Tech - CS - 116
CS 116SPRING 2007 WEEKLY LAB PROBLEM #8A ID ARRAY LIST Object: To learn how to implement an array list of objects Problem: The philanthropic organization would like to be able to have non-technical personnel manipulate the data stored in the data st
Illinois Tech - CS - 116
CS 116 SPRING 2008 , SECS. 3-6 LAB #8 INHERITANCE, COMPOSITION SOLUTIONExercise #1:Rectangle: length: 4 width: 5 area 20 perimeter: 18 Box: length: 8 width: 6 area 48 perimeter: 28 depth: 4 volume: 192Exercise #2:Length: 8 Width: 6 Width: 12
Illinois Tech - CS - 116
CS 116 SPRING 2008 , SECS. 3-6 LAB #4 ITERATION, FILE I/O SOLUTIONHomework: Programming & Problem Solving with Java,2nd Ed, Dale & Weems: p. 333: #2, 3, 5, 8, 10, 11 Grade #2, 5, 10 1 point apiece2. while ( ! dangerous ) { pressure = datain.nex
Illinois Tech - CS - 116
CS 116SPRING 2008 WEEKLY LAB PROBLEM #11 SEARCHING AND SORTING AN ARRAY LIST Objective: 1. To start coding your final project. 2. To search an array of objects using sequential search. 3. To sort an array of objects using selection sort. 4. To search
Illinois Tech - CS - 116
CS 116 SPRING 2008 , SECS. 3-6 LAB #9 POLYMORPHISM SOLUTION Exercise #1: See ex1_4 Exercise #2: See ex1_4 Exercise #3: See ex1_4. Be sure student have called the correct calcArea() method using polymorphism. Exercise #4: See ex 1_4. Be sure the stu
Illinois Tech - CS - 116
CS 116 SPRING 2008 , SECS. 3-6 LAB #4 ITERATION, FILE I/OObjective: 1. To learn to use iteration to solve a problem. 2. To learn to read and process data from a file. 3. To learn to merge two files. 4. To learn to use nested loops. Homework: Prog
Illinois Tech - CS - 115
Poor:12/40The end product doesn't work at all. They missed key points on the assignment (such as drawing up an API)Also, most of their group did not show up to the second session.Average:30/40The end product has major problems, and some o
Illinois Tech - CS - 115
/* # * cs115 * section3 * homework 2 * 7th September 2007 */package homework2; public class Homework { /* * @param args */ public static void main(String[] args) { / TODO Auto-generated method stub/ System.out.println("my name is #"); System.out.prin
Illinois Tech - CS - 115
Find a set of instructions for operating an appliance that requires you to set the date and time, such as a DVD player, microwave oven, clock radio, or a computer. Identify the obvious objects in the instructions. Then identify which portions of this
Illinois Tech - CS - 115
08/31/2007 HOMEWORK CS115004*2.Find a set of instructions for operating an appliance that requires you to set the date and time, such as a DVD player, kitchen oven, clock radio, or a computer, identify the obvious objects in the instructions. The
Illinois Tech - CS - 115
/* * # * cs115 sec007 * Lab2 */ package lab2; public class CrissCross { public static void main(String[] args) { char star = '*'; char space = ' '; String string1 = " * String string2 = "* * * * * * * * "; *";System.out.println(string2); System.out
Illinois Tech - CS - 115
public class JackBanner { /* * @param args */ public static void main(String[] args) { String jack0 = ("Black Jack"); String jack1 = ("#"); char someone = 'j'; String jays = "j j j j j j j"; " " " " System.out.println(jack0+" "+jack0+" "+jack0+" "+ja
Illinois Tech - CS - 115
package Collection; public class cds { private String artiste; private int numCds; / default constructor public cds() { artiste="Taylor Swift"; numCds=1; } /constructor public cds(String newArtiste, int newNumCds) { artiste = newArtiste; numCds = new
Illinois Tech - CS - 115
No example poor lab for Lab 1 currently exists. None of the students that produced poor labs submitted them to blackboard's digital dropbox.?/15The Homework is poor; it is from the S.Pasari, and is poor because it does not go into detail, or eve
Illinois Tech - CS - 115
The lab is from L. Xu, and it is poor because it completed the spirit of the assignment, while ignoring most of the rules. It had no string of spaces, and each line did not relate to the others. It was more like someone had just started throwing word
Illinois Tech - CS - 331
2 JUNITCS 331 Lab 2: JUnit and Array Lists Spring 20081 IntroductionThe title of this lab is Array List, but is really about JUnit, the testing framework we will be using in this course.1.1ObjectivesYour objective is to become familiar with
Illinois Tech - CS - 331
Linked Lists3 YOUR WORKCS 331 Lab 3: Linked Lists Spring 20081 IntroductionIn this lab you will code some of the basic functions for a singly linked list, and write tests to verify that they work correctly.1.1ObjectivesYour objectives for
Illinois Tech - CS - 331
Stacks and Queues2 GIVEN FILESCS 331 Lab: Stacks and Queues Spring 20081 IntroductionAs we discussed in lecture, stacks and queues are easy to code if you already have a working linked list implementation. In this lab, you will encapsulate a li
Illinois Tech - CS - 331
Binary Search Trees3 GIVEN FILESCS 331 Lab: Binary Search Trees Spring 20081 Objectives Be able to use the find and add traversal patterns. Be able to write delete for the three cases. Have experience using a dictionary style container. Use
Illinois Tech - CS - 331
Iterators1 GIVEN FILESCS 331 Lab 5: Iterators Fall 2007Rev : 4700.1ObjectivesIn this lab you will create two iterators for a singly linked list. Have experience using the Interface feature of Java. Know how to implement a traversal itera
Illinois Tech - CS - 331
Stacks and Queues2 GIVEN FILESCS 331 Lab: Stacks and Queues Fall 2007 Rev : 4691 IntroductionAs we discussed in lecture, stacks and queues are easy to code if you already have a working linked list implementation. In this lab, you will encapsul
Illinois Tech - CS - 331
Binary Search Trees3 GIVEN FILESCS 331 Lab: Binary Search Trees Fall 2007 Rev : 4861 Objectives Be able to use the find and add traversal patterns. Be able to write delete for the three cases. Have experience using a dictionary style containe