Pages

Monday, August 24, 2015

Implement callback routines CallBack using OOP

Developers conversant in the event-driven programming model of MS-Windows and the X Window System are accustomed to passing function pointers that are invoked (that is, "called back") when something happens. object-oriented model does not currently support method pointers, and thus seems to preclude using this comfortable mechanism

Interfaces provides a mechanism by which we can get the equivalent of callbacks. The trick is to define a simple interface that declares the method we wish to be invoked.

 

 public interface InterestingEvent
    {
        // This is just a regular method so it can return something or
        // take arguments if you like.
        void interestingEvent();
    }

    public class EventNotifier
    {
        private InterestingEvent ie;
        //private bool somethingHappened;
        public EventNotifier(InterestingEvent e)
        {
            Console.Write("EventNotifier called\n");
            // Save the event object for later use.
            ie = e;
            // Nothing to report yet.
            e.interestingEvent();
        }
    }


   public class CallMe : InterestingEvent
    {
        private EventNotifier en;
        public CallMe()
        {
            // Create the event notifier and pass ourself to it.
            en = new EventNotifier(this);
        }
        // Define the actual handler for the event.
        public void interestingEvent()
        {
            Console.Write("Call Me function called");
        }
        //...
    }

     //*****Client Side**************
     CallMe obj = new CallMe();
     Console.ReadKey();
     //******End***************

No comments:

Post a Comment