Typical Use of Observer Design Pattern
The Observer design pattern is typically used in GUI applications. In a multi-windowed application, one window (the subject) sends updates to other (dependent) windows. But, as shown in this article, you don't need a GUI application to make effective use of the Observer design pattern. The pattern works well in all kinds of applications.
Some Consequences
Use of the Observer design pattern can have both good and bad consequences. Here's a brief list:
Abstract Coupling Between Subject and Observer
A subject knows only that it must notify a list of observers. The subject doesn't know the concrete implementation of each observer, and observers can come and go as they please. When an observer comes or goes, neither the subject nor the other observers are modified. This creates a very loose coupling that allows for subjects and observers to live at different levels of abstraction. For example, a high-level observer can register itself with a low-level subject.
Support for Broadcast Communication
The subject broadcasts its notifications to all interested observers without regard for the number of observers that it needs to notify. The burden of using the updated data rests solely with the observers. This allows you to add (register) and delete (unregister) at any given time.
Unexpected Updates
A change to a subject may have an adverse effect on the registered observers. A spurious update may be difficult to track down if there is no protocol to explain exactly what changed in the subject.
A Versatile Tool
The Observer pattern is a very versatile tool for modeling real-life objects. That's what object-oriented programming is all aboutmodeling real-life objects.
Resources
About the Authors
Barry Burd is a professor in the Department of Mathematics and Computer Science at Drew University in Madison, New Jersey. When he's not lecturing at Drew University, Dr. Burd leads training courses for professional programmers in business and industry. He has lectured at conferences in America, Europe, Australia, and Asia. He is the author of several articles and books, including "Java 2 For Dummies" and "Eclipse For Dummies," both published by Wiley.
Michael P. Redlich is a Senior Research Technician (formerly a Systems Analyst) at ExxonMobil Research and Engineering, Co. in Clinton, New Jersey with extensive experience in developing custom Web and scientific laboratory applications. Mike also has experience as a Technical Support Engineer for Ai-Logix, Inc. where he developed computer telephony applications. He holds a Bachelor of Science in Computer Science from Rutgers University. In his spare time, Mike facilitates the ACGNJ Java Users Group and serves as ACGNJ Secretary. Mike has co-written several articles for JavaBoutique, and his computing experience includes computer security, relational database design and development, object-oriented design and analysis, C/C++, Java, Visual Basic, FORTRAN, Pascal, MATLAB, HTML, XML, ASP, VBScript, and JavaScript in both the PC and UNIX environments.
New on the Java Boutique:
New Review:
Time Management Made Easy with the Quartz Enterprise Job Scheduler
Why not just use the Java timer API? This open source scheduling
API boasts simplicity, ease-of-integration, a well-rounded feature
set, and it's free!
New Applet:
Reverse Complement
Reverse Complement is a simple applet that converts DNA or RNA
sequences into three useful formats.
Elsewhere on internet.com:
WebDeveloper Java
Lots of Java information on webdeveloper.com
WDVL Java
Thorough Java resource at the Web Developer's Virtual Library.
ScriptSearch Java
Hundreds of free Java code files to download.
jGuru: Your View of the Java Universe
Customizable portal with online training, FAQs, regular news updates, and tutorials.
|