ObservableClock.cc (C++).

Uncle Bob's Agile Development Corner
OBSERVER—Evolving into a pattern, Part 2
by Robert C. Martin
Listing 3. ObservableClock.cc (C++).


class ObservableClock : public Clock, public TimeSource
{
    public:
        virtual void tic()
        {
            Clock::tic();
            TimeSource::notify(	getHours(),
                                    getMinutes(),
                                    getSeconds());
        }

        virtual void setTime(int hours, int minutes, int seconds)
        {
            Clock::setTime(hours, minutes, seconds);
            TimeSource::notify(hours, minutes, seconds);
        }
};

About the Author

Robert C. Martin is president of Object Mentor Inc., a firm that offers high-level, OO software design consulting, training, and development services. He is the author of Designing Object Oriented C++ Applications Using the Booch Method. He can be contacted at [email protected].