COMP 310
Fall 2012
|
Lec30: Chat Program
Interfaces
|
 |
Today we will continue developing the common Java interfaces and protocols that we will need to enable
everyone's chat program to interact. Please refer to the
previous lecture materials...
Some basic notions to consider:
- Minimal and Complete -- Strive for the minimum number
of methods that for a complete set, enabling all required operations to be
performed.
- Orthogonality -- All methods should be maximally
independent of each other and not perform operations that are also partially
performed by other methods.
- Implementation Independent -- The user of a
method or object should not be concerned with how it is implemented.
- Flexibility -- All possible operations must be able to
be accomplished with the defined set of operations and objects without the
need for special cases.
- Extensibility -- The addition of new operations and/or
capabilities should not require major reconfiguration of the system,
preferably no changes at all.
- Robustness -- The system should be designed to
gracefully handle user or other errors that may occur.
- Security -- The system should be gracefully
disallow deliberate attempts to circumvent proper operation.
Pitfalls:
-
Attempting to serialize an anonymous inner class.
- Locking up and/or "cross-thread invocation" errors: This could be
caused by threading issues
due to the fact that RMI method calls run on a diffferent thread than the
GUI. We will be treating these issues on an "as needed" basis, so if
you experience the problems, please let the staff know right away.
© 2012 by Stephen Wong