Ever wondered what is the response given to an amateur who is auditioning in Hollywood or What about you calling up every recruiter out there for a job opening ? The response on either case is the same . You guessed it , “Don’t call us, we’ll call you” . Congratulations !! ,

you learned “Hollywood principle” in software programming

function-callback

 So  let’s understand this principle in detail .  When you do programming for a high cohesive and low coupled application  , you use function callbacks most of the time , knowingly or unknowingly . So what is a function callback ?  Is it like rather than your code calling a function , the function calls back your code  ?

Here is an example . Let’s assume you need to  create a  function that calculates discount .This function take in the billAmount as a parameter and a callback function reference as second parameter. The advantage of this approach is the client code  can change discount strategy  , based on requirement with ease . Let’s say you can select different discount strategy on Monday , Tuesday ,Wednesday without changing other part of the code ,there by bringing in a loosely coupled approach . On Monday a 50% discount ,Tuesday 40% discount and Wednesday 30% discount .

call-func1

 

 

 

 

 

 

 

This is a pseudo code, we will implement the same in Java using interfaces, and in C #you could use delegates to achieve the same. Here we will discuss how to use callback in Java via interface.

First you need an interface , which will define the callback method . IDiscount interface has getDiscountRate() as the callback methodcall-func2

 

 

 

 

Now we need the Discount Strategy classes for Monday ,Tuesday,Wednesday.

call-func3

 

 

 

 

 

 

call-func4 call-func5

 

 

 

 

 

 

 

 

 

 

 

We need a concrete class which does the discount calculation. This function will take IDiscount as parameter , callBackDiscount.getDiscountRate() will invoke either MondayDiscount or TuesdayDiscount based on runtime .

call-func6

 

 

 

 

 

 

Let’s test the code and find the output.

call-func7

 

 

 

 

 

 

 

 

What is function callback?

Post navigation


Leave a Reply

Your email address will not be published. Required fields are marked *