Upload
domenic-simpson
View
213
Download
0
Embed Size (px)
Citation preview
Object-Oriented Design
Object Oriented Design
CRC stands for Classes, Responsibilities, Collaborators
Class name goes on the top Responsibilities go on the left Collaborators go on the right
UML Basics
Inherits, is a...
Implements, is a...
Aggregation, has a...
Dependency
Design
Identify nouns Group nouns into packages Responsibilities Identify more nouns & responsibilities Use case - example that helps identify what the
program needs to do/handle
Testing
It's a good idea to write unit tests, small examples of things that should happen
Language feature: assert()
Documentation
/** javadoc comment */ put them on classes, methods, fields, as
appropriate @see refer to another class or method @param document a param @return document the return value
Examples
Blackjack? Chess? Battleship? Adventure?
Debugging
To debug:
compile with the -g flag, javac -g Prog.java
To run the debugger
local debugging
jdb Prog remote debugging
java -Xdebug -Xrunjdwp:transport=dt_socket,server=y,address=8080 Prog
jdb -attach 8080 To profile:
run like this: java -agentlib:hprof Prog
then start jconsole and attach to your program
Debugging
stop at BlackJackViewer:58 sets breakpoint
clear BlackJackViewer:58 clears breakpoint
dump bj / print bj.game.deck.cards.size() prints out variables
run / step / step up / next / cont
Debugging
threads / thread locals set watch threads where