Jia Chapter 8

Download Report

Transcript Jia Chapter 8

COP 3331 Object Oriented Analysis
and Design
Chapter 8 – Object-Oriented
Application Framework
Jean Muhammad
Reference – Object Oriented Software Development Using Java - Jia
Overview




Application Frameworks
Collections Frameworks
AWT and SWING
Input/Output Framework
Reference – Object Oriented Software Development Using Java - Jia
Applications Frameworks
A framework is defined as a set of collaborating
classes that represent usable designs of
software systems that have some application
for a particular domain. The main goal of an
application framework is to support the reuse
of designs.
Reference – Object Oriented Software Development Using Java - Jia
Applications Frameworks

Characteristics
–
–
–
Extensibility: A framework consists of a set of abstract
classes and interfaces to be extended and specialized.
Inversion Control: Frameworks represent a higher level of
abstraction then we normally think of. Instead of the
application controlling the flow of execution, it will be the
framework.
Design Patterns as Building Blocks: Design patterns are a
schematic description of reusable components while
frameworks are executable programs.
Reference – Object Oriented Software Development Using Java - Jia
Applications Frameworks

Design Requirements
–
–
–
–
–
–
Completeness: A framework must provide a family of
classes.
Adaptability: All platform-specific aspects of the framework
must be clearly identified and isolated.
Efficiency: Components must be easily identified and
documented.
Safety: Each abstraction must bye type-safe to avoid
behavior problems.
Simplicity: Must have clear and consistent organization.
Extensibility: Must be able to add new classes
Reference – Object Oriented Software Development Using Java - Jia
Applications Frameworks

The Collections Frameworks: An object that contains other
objects.
–
–
–
–
–
Bags: A collection of unordered elements. May be duplicates.
Least restrictive.
Sets: An unordered collection of elements. No duplicates are
allowed: {e1, e2, e3, e4,.. en}
Lists: An ordered collection of elements. Duplicates are allowed.
Maps: A collection of unordered collection of key-value pairs
denoted by key->. They are also known as functions, dictionaries,
or associated arrays. Keys must be unique
{k1->v1, k 2->v2, k3->v3, k4->v4, .. kn->vn}
Sort Maps: Elements are sorted by keys.
Reference – Object Oriented Software Development Using Java - Jia
Applications Frameworks

Interface Collections
–
Common aspects of a class should be handled in
a uniform manner.
Collection
Set
Map
List
Sortedmap
SortedSet
Reference – Object Oriented Software Development Using Java - Jia
Methods of Interface Collection
add(o)
 addAll(c)
 clear()
 contains(o)
 containsAll(c)
 isEmpty)
 iterator()
 remove(o)
 removeAll(c)
 retainall(c)
 size()
o – is an object , c – is a type collection

Reference – Object Oriented Software Development Using Java - Jia
Methods of Interace set

This extends the Collection interface
–
–
add(o) adds the elements, checks to make sure
there are no duplicates.
addAll(c) Adds elements if they are not already
present.
Reference – Object Oriented Software Development Using Java - Jia
Methods of Interface List

List interface also extends Collection
interface
–
–
–
–
–
–
–
add(i,o)
add(o)
addAll(c)
addAll(i,c)
get(i)
indexOf(o)
lastIndexOf(o)
- remove(i)
- remove(o)
- set (i,o)
- subList(i,j)
Reference – Object Oriented Software Development Using Java - Jia
Methods of Interface Map

Does not extend Collection or Set interface
–
–
–
–
–
–
–
–
–
–
–
–
clear()
containsKey(k)
containsValue(v)
entrySet()
get(k)
isEmpty()
keySet()
put(k,v)
putAll(m)
remove(k)
size()
values()
Reference – Object Oriented Software Development Using Java - Jia
Concrete Collections - Discussion







HashSet
LinkedHashSet
TreeSet
ArrayList
LinkedList
Vector
HashMap
IdentifyHashMap
LinkedHashMap
TreeMap
HashTable
Reference – Object Oriented Software Development Using Java - Jia
Methods of Interface Iterator



hasNext()
next()
remove()
Reference – Object Oriented Software Development Using Java - Jia
Methods of Interface ListIterator









add(o)
hasNext()
hasPrevious()
next()
nextIndex()
previous()
previousIndex()
remove()
set(o)
Reference – Object Oriented Software Development Using Java - Jia
AWT and SWING




GUI components: Known as widgets. Examples include button,
label, checkbox, scrollbar, frame, dialog
Layout Managers: Define strategies for laying out GUI
components. Commonly used layout managers include
FlowLayout and BorderLayout
Events and event listeners: Represent user input or actions.
KeyEvent, MouseEvent are examples.
Graphics and Imaging classes: Allows components to be
drawn. Graphics(Color, Font, Graphics, etc). Geomentry (Point,
Rectangle, Dimension, etc), Imaging( Image, Icon, etc).
Reference – Object Oriented Software Development Using Java - Jia
GUI Component Classes in AWT
Component
*
Button
Container
Canvas
Panel
Window
CheckBox
Choice
Frame
Dialog
Label
FileDialog
List
Scrollbar
Java.applet.Applet
TextComponent
TextArea
TextField
Reference – Object Oriented Software Development Using Java - Jia
Swing Components
Component
Container
*
JComponent
JButton
JLabel
JPanel
Window
JCombBox
JApplet
JCheckBox
Frame
Dialog
JFrame
JDialog
JList
JScrollBar
JTextComponent
JTextField
JWindow
JTextArea
Reference – Object Oriented Software Development Using Java - Jia
Input/Output Framework


Stream I/O: Sequence of bytes. A stream
may be opened for reading and writing but
not both.
Random Access I/O: Random access I/O
supports reading and writing data at any
position in the file. A random access file may
be opened for both reading and writing.
Reference – Object Oriented Software Development Using Java - Jia
Byte Streams
Input Method
Output Method
read()
read(ba)
read(ba,off,leng)
write(b)
Reads/Writes single byte
write(ba)
Reads/Writes byte array
write(ba,off,leng) Reads/Writes segment of
byte array
Skips over n bytes
close()
Closes the stream
skip(n)
close ()
Description
Reference – Object Oriented Software Development Using Java - Jia
Random Access Files

Constructor
RandomAccessFile(filename,mode) Creates a
random-access file that reads from, and optionally writes to, the
file name filename. The mode argument is a strng whose value
must be either “r”, for ready only, or “rw”, for read-write.
seek(L) Move the read/write position to the L-th byte.
skipBytes(i) Moves the read/write position I bytes relative to
the current position. Moves forward or backward.
Reference – Object Oriented Software Development Using Java - Jia