الاثنين، 14 مارس 2016

الـ Callback



احيانا ما يثير اعجابك ببرنامج او كود كتبته ليس الهدفه من برمجته بل طريقتك الخاصة و المحسنة التي استطعت ان تجعل بها فكرتك تحيى داخل هذا البرنامج  , فرغم اختلاف لغات البرمجة  في تسمياتها و خصائصها و كلماتها الدلالية و بيئة عملها فانها   تشترك في الاسلوب  ,مثال بسيط  لكل وظيفة (function)  اسم تحتاجه عند عمل نداء لهذه الوظيفة و تقنيات برمجية معينة منها Callback التي ساحاول شرحها ,فهي تقنية بسيطة قد لا تكون احتجتها من قبل لكن اذا قمت بتجريبها و فهمها ستجعلها في كل كود تكتبه مستقبلا .. callback كتعريف هي نداء عكسي او رجعي يحصل عند انتهاء كود معين من التنفيذ .. او عند حدوث حادثة EVENT محددة مثلا في لغة الـ javascript و تحديدا بمكتبة jQuery تعتمذ كليا على callback لتفادي توقف المتصفح عن تنفيذ اكواد الـ javascript ... 



function safi(mycallback){
//something happen here so
var working=true;
mycallback(working);
}

safi(function(result){
if(result){
 alert("its working");
}else{
 alert("sorry");
}
});

في المثال السابق الوظيفة safi يتم تمرير لها callback function باسم mycallback .
اما في لغة اخرى مثل الـ java ( الاندرويد أيضا) فيمكن عمل callback بـ interface



//myapp.class
class myapp{

myapp(mycallback mycall)
{
//somthing happen here so
boolean working=true;

mycall.wehaveresult(working);

}


}


//mycallback.class
Interface mycallback{

public void wehaveresult(boolean var);



}



و في الكلاس الرئيسي main.class



//main.class

new myapp(new mycallback(){

public void wehaveresult(boolean result){

if(result)
{

   System.out.print("its working");
}else{

   System.out.print("sorry");
}

}
});


 highlight.js لاضافة الاكواد البرمجية في الصفحة استخدمت