(翻译)理解Java当中的回调机制

原文地址:http://cleancodedevelopment-qualityseal.blogspot.com/2012/10/understanding-callbacks-with-java.html

你好,今天我要和大家分享一些东西,举例来说这个在JavaScript中用的很多。我要讲讲回调(callbacks)。你知道什么时候用,怎么用这个吗?你真的理解了它在java环境中的用法了吗?当我也问我自己这些问题,这也是我开始研究这些的原因。这个背后的思想是控制反转( PS:*的解释是控制反转(Inversion of Control,缩写为IoC),是面向对象编程中的一种设计原则,可以用来减低计算机代码之间的耦合度。)这个范例描述了框架(framework)的工作方式,也以“好莱坞原则:不要打电话给我们,我们会打给你("Hollywood principle - Don't call me, we will call you)”为人们所熟知。

简单的Java里的回调模式来理解它,具体的例子在下面:

aaarticlea/png;base64,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" alt="" />

 interface CallBack {
void methodToCallBack();
} class CallBackImpl implements CallBack {
public void methodToCallBack() {
System.out.println("I've been called back");
}
} class Caller { public void register(CallBack callback) {
callback.methodToCallBack();
} public static void main(String[] args) {
Caller caller = new Caller();
CallBack callBack = new CallBackImpl();
caller.register(callBack);
}
}

你可能要问我,什么时候用这个或者会问直接调用和回调机制有什么不同呢?

答案是:好吧,这个例子仅仅向你展示了怎样在java环境中构造这样的回调函数。当然用那种方式使用它毫无意义。让我们现在更加深入具体地研究它。

在它之中的思想是控制反转。让我们用定时器作为现实中的例子。假设你知道,有一个特别的定时器支持每小时回调的功能。准确地说意思是,每小时,定时器会调用你注册的调用方法。

具体的例子:

我们想要每小时更新一次网站的时间,下面是例子的UML模型:

aaarticlea/png;base64,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" alt="" />

回调接口:

让我们首先定义回调接口:

aaarticlea/png;base64,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" alt="" />

 import java.util.ArrayList;
import java.util.List; // For example: Let's assume that this interface is offered from your OS to be implemented
interface TimeUpdaterCallBack {
void updateTime(long time);
} // this is your implementation.
// for example: You want to update your website time every hour
class WebSiteTimeUpdaterCallBack implements TimeUpdaterCallBack { @Override
public void updateTime(long time) {
// print the updated time anywhere in your website's example
System.out.println(time);
}
}

在我们的例子中系统定时器支持回调方法:

aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAA0kAAAIPCAIAAAApbQLSAAAgAElEQVR4nOy9y2tcWZb/W7PqX3Ulnd116abupLJEoQiSckIaAoSEs7ghuFdYISEZ1SBEEBoUYWRBSrYh3KBJaFIkiALLnrSgh4aEHBqPBIWHNTYeWdCj/AcMHsmDhjs4r/1aaz/OPo8Ifc1nYMV57LXX3mef71n79YvffPGLL37z2+Lfv3/5y19++e+/lX+RTxH+qVcLvxQ3yn+i09LT+M2XmRWqRdm5v/niF+LvuuG//c0Xv8j+yTc3Z8niit988YtfqCn8+5e/VO+t/yPNMKTJH5LtNiWupSV76TdfiFdkKfzmCzVfDv/8ip4qRD6/dImEVTPVDPlPoqL/+5e/tJUw+a+tz85vwx+fW/Ts/LbSxye4UuEf/rXy37/+2//1f5f49x//8R//Fu/fv37xxb9+8YX005dffvnP/6z8/8tf//pffvnLgv/zf/71X/6lOC2/9Fe/+vJXv/ryn//53778Mv0l+b9wzy9//et/+ad/+pd/+qcvf/1rNTnTv1/96ldfZnfLjfrVr34l/vLFF198oeTCmJ38t9zCL7/8Bf7hH/7hH/7hH/7hH/4tzr9OdwkAAAAAACwG0HYAAAAAAIsDtB0AAAAAwOIAbQcAAAAAsDhA2wEAAAAALA7QdgAAAAAAi8McaLve9t500u95HnLjzs5kPN1fsaT+xHKOd3ai3jAsX7eQWjxfrxn9zemTcUrT+SrJ+r5LFlCxG6YlD9Hc0N+cPtlcL3ufldGT8ajfdF7AXMFru43ji/PnGsdb/KG4MNXaqcanjZHG4fYdd213uH0nVo4i37DXPzQ4oZJXoOjJOPabjS9rm1bKVRVlGVOjmtECxVO6KKHtRKXeZC1li7K2h6jNrY1XiqrxdCkzWU4OQd4BdzzjdltHzy9Ox2ueh8rAfPf4fhL1+odP9nZ64o/z/6qoS9ut74+ngvd623sRGpoqWltDKS88LajG0Hbl6G3vCc/XyqjB2Fj9GkhjblobDkMhMqVszXJvey9GCBDcFry0XW98dv78ZMPzUBnu7EyojzbmEAG0XTgroyo+1qHt4tCCagxtVwrt+epvTpuqxs1ru/lpbWhMUowpZZcsN6r4wbzho+3qD9ox7+mAVzit7YpguDh6jx/MJB51/JyKekOiFzK5kM2X1RIDZLMif4nmfhbaUFO+WONpC/ub00m/lxya9Hu9/qHuK2PFoPJrvSF/YeKWJ2PX7pIQM9JvGLIoheJ2Si4wy6QZgUVpqBse2o4wg62H5EPEXSXlTvaGaK0kTAPqhkHJ5QNObBUgqIoa82UpSrIcLRau73MjJUzMT2vDZsHUG0uVspNuQ+gOuOOu7Xrjs/PnZ8NVv0OlWN83vsksh0gobVc0RsaPJ9OLs9QnYNQbMnE7Kl9SX7brt2DWPup6WnWaVDR8vqijlIVSO7t3ONlc1+/AiX7N8/wNGUdlL4PkTM8218sMpSiNMs70Y5gPySxnZqR/ak+Kb1F21VedR9xOrtiUSW5NBHeVXKyaNxht51k3TOfk/RJsBQirov1NIcvORUlWNq5uKOk6fgXNTWtDYQq7sqXMZNkhCwBoOGu7teGMmirBHCpF2VkUKpS2E14AphcM9eIM7jGJekNG25nzpfZle+iS9MtV/fKWX6Jy0fD5oo03W5i/G4pBylpN8Nd2xA1ZRylvKb8osrcZYlFSbwhjKMXTh0yWbU+Kb1Fqhzy0HeENrh7S0Fdpdygqs13bedUN03x/WduZsxyniroVpaWyMa2NHv11ekzmorVhClRrVNlS5rLMWAsAhau2G5yQkTnmUBkYzREYmnYYb+eq7fJP1RBBFvWGbuPthHwVfTTm7glH+5+oTZIp8GPLl9l42sK87S4uLK/tqBuyjiq1tIGXGfTJXI0K8yGTZduT4luU2vmB4+1Eb3D10O0JEq/S/awEUzlt51c37HE7c5bDq6jaT1pe2xHeCIvbqTdvbWvDFKgWM+bjdlyWOecDYMZN2zUQtIs6iyIhprYTDnkLsqg3DNJ25aP66/uiIiySW9+nmyQ9X3Rra7awdm1HOmoetJ2/D5ksh2s78w1jajv3emi5p3RVjdrOdIlLBQisovLDGylux2m7QjaFtTztbW0IzNEHrpQtZSRmDXE74IKTthucnD+/OBp4HipF3FkU5IUltZ3jCb7n+9zQW9vF+fJTG6+02VoZcW81LWnfSb61ajvWUc1pO/c+WX8f2r46vLUdc0Nl4JTjuE+TN9T5T9Z6SJWmfJWeo6LQDV2NpbSdR1paR7l3FVVdXaW2u7MzifAl2d7WhqtRWivElbIty05FA0CBg7ZbG84uzmcHPb9D5WA+4t2+701Upe18Z+zHvaHxpWj/kvZrIHr9Q62VlC3Mujb88mV+o5MW1qrtWEc1pe2Mq6GaalSYD+ksW58Uz6KUBk65VB6TGYZXnfut7FfJsRNqioAykyCwbkjLm0mlzFWAoCoqDY9LO2cdipKubLG/JOeotfFInS1le5aVWgeABbu2ayBoF30WRYKntjPNnE8vVw456rDoNxTy5Tc6SrXEpfGVl6vQi8CwPIFLvgzG0xaGajvS87Ybko4Ken8HmZF3MBk8z9SoYB8SWXb4CvIqyq6UtVF/qbe951IPrX18xnrodlvDVeK4NLn2Fsany3+UqxtK1oR8cRUgsIrKY/YNnjcVJV3Z7DNLFra1oSE6ValStmcZg+2AF23cTzb+LApQPaX39gVG0KD7EVYPW1x757kC6PGnSL2KLS6vnMhLDePdB7xoobarYBYFqJpSi8IAhnl+tddPWD1sde2d5wqgabuwqKpKq8uLy/7iZxm0hhZqOzBPZJ1WaHcqYp5f7TUSVg/nofbOeQVQ+2RLuXoeykvPfvlgW5zFDcCtAtoOAAAAAGBxgLYDAAAAAFgcoO0AAAAAABYHaDsAAAAAgMUB2g4AAAAAYHGYA23HLGXU/lWOwnfRUEimm8W4VTuc1pLZf3Yz0rVGazG1zrRaQswsi1My59yH0doNA+2q8zVRXd1I1kNuvkUFQILXdhvHF+fPNY630hNWD06L38+Gq5WYWHaPip2Jvj74yqiupzGutqNWWveaHn9LtZ33hqeCu2ItUmUrr8hpzQMVZLkFnw2lV+gt2W6Y9pDIt2qovc63iArqRkRth+1iQTw843ZbR88vTsdrS51U2OUbjm0cVyTvmPWBHJcOqmj9TDeiaTtqGUxoOx8HBmi7WswAEYG2UyyxbLR4m2h33tE4gHh4abve+Oz8+cmG9v+ljir1YhFnjwp9z+/aHu+42s7w2EPblXJgS8wAEWnB+xvarqW0O+9oHEA8fLSdELTrdJcGJ+eCmFOlXhxM+77bD5lPzoSgtnmL1H+hbGTOb45OoSzFLlzFpJVu2p0cctBeRLeLPZApabt08+xiz2/GDKPxRrc4yMfUvTWkxTqKNYMfoyOVspvbmfKi0upvTif9XnJ00u+l5SUkx1+YfMmQu49LWN1L1N4Qb4Rm2eVJId7fxuQC3UuaYX8qmUpFtxvh0NquhjrP3VNztdIRbK5sddYNFrWgi7RsLw6TD4MbcwAo3LVdb3wm97quDWfiOLwKOmTX90mVwxwykm20rD548gbMYkgvVNvJ2lG8ypJW8efKyH2wS5m4XdIyKnKWMIMy3lgQDr7K0kqvrTQtxlGcGdI5ShLBX9iWC7W0pNfY3uFkc128gzQsQQ5IZ6+Q5EyXjcYt7u1vCp6RHVUq3uCVZaW8jK9q04+UowLda3tgKYdYysvcbpSC0na11Xkmy+IntzLmhKpsddYNZ+QHh31x8D5E3A7Ew1nbrQ1nwiyKjN74LNN20YN2pWdR6JccTpQ3nHafooUN03ZqT7FwlS0t4bXq0bIHaztV2PFmkMbLSlGK/1kdVVdajKNcPE+9D4KGbAZpu1FffPnl/lHzLgm4/MIiXYvBXu6VHFVqI3PvLIvlZdKsennRjgp0r63a0JWNuSHRbpSD0nY11Xm2ihb3tCgq8QOjvrrhjIe2430IbQfi4artBidaZG7rKJN0mcKLKu+YZyzg8etoMf9O1/SkKV+BvtpOezjlVilqWkSKjn4w9T7QZjDGZ1+9gnudtV1NaTGOcvE8HQB44r9teYi229vpiRfmL7Oiv5Xo5PV8RmzuzXZqJwYwBHjDO8v0yVx50Y4KdK+t2phLmb4h026UxGG8XZV1nq2iUqVS66q5stVZN5zx0Ha8D6HtQDzctJ0haLdxLIs5efhdeeLMopDQm7lbq+2yMSuyG4P0VubV9f29nX7/MBvjZTOpzrQYRwW/54RDXm+72NqOvFWAtmPdK09Ioh3lrfBq0nZmRwW6N1zbmW84H9ouoJStj2d+N13wmSpbnXXDGR9tx/oQ2g7Ew0nbmXTbxvHF+eygl/8SeZ5srFkU/IX6s1S8EZVH1HGClTJ4Rehr8EirFm2XhWeEa2kzOONXRkmvyqTf697ZmSQ9LNYCqjMtxlEl33NedcOlvMoJHZEAbce5V+01o6uo71TEUll273czmxTo3jBtx9yQbjdKEl/beZWy5bSs+JQFR+nKVmfdcIbVdh61CNoORMRB260NZ7KM63SXsn5YeX27eH2yjLgJ/6I1iUJ9eRTTiH5l6LTNcmGQsngVnVYJbef/GhBnPiYdH1lrwpnBG3842Uv+7G3vTSd7h3ZVUWdajKOivOd85r5YystL6OjqfEm+0FfbMe6VBjOl/WVOMsUp0UBtZ1700VBepKMC3WutNuZSZsqLaTeKEwIEX1XazrWUbVVUnLYit4fGylZn3XBGmYTk/OLQfVjr+lxgsbFrO7qzVZhIEXmwXdxZFBlEwE8c2GHoo8x+723vuT11xVWj/pJyFZFWGW2XrybgOlJEXjQktdala5hy1Pq+0Lngukp7nWkxjuLMMC1MkCatHPIbIWAqLzItVnwYLszzEqLtWPcKZiuPQ5g3grJcPFz5I2a/IeOoQPc6PLDEU0mWF9tueH1eamZ4aLsq6jztecMjn3qeqmx11g2vp0ZqhcgXh92Hno05ABRt3E82+iwKAMBCEKEHDSwojdWNKjf/BSCQFmq7CmZRAAAWAWg7QFFn3VgZyZ2/GCQH2kYLtR0AABiBtgMU9dYNYXsJCDvQQqDtAAAAAAAWB2g7AAAAAIDFAdoOAAAAAGBxgLYDAAAAAFgcoO0AAAAAABaHOdB28lq7rofcwLS79joqXeeznaUjzJLjLXRd+8r5hh7eK/VoeFtoLK/4ZoDyRK+93aVO3Ac29uMAwG2D13YbxxfCzhMZx1vpCasHp/qPsalmj4qU2iXLvC6G1Ji2o5Zub4cP7W7xXNc0mp8rE1Wkhcbyqk/bmbchDtp4+rYQufaSD2yVFlZOi1obADzwjNttHT2/OB2vLXWUvciE3yPDbJ0UtKuSDLRdWx01Hz6EtmvKDA1oO2+i194GLKycFrU2AHjgpe1647N839iNYylWJx6KSNV7VEDbtdVR8+FDaLumzNCAtvMG2s6BFrU2AHjgo+3E4NzacCYH6lYPTp+fDVfj2mfY6NrhkBFxAEcR7UvbjmILZ/k9JG3tnDUxxvbO+g4zbVZNbyLu0Jz1tvfUV5fcDBE3dNjm3EB9jlILS7iD1Yc8yWbkyjbh5RxFvHukyhZB2zF1gzok+TndgFzItflxCLWQHh3lYUbJV7hN28V+lmt79Oah9lLl2N+cTvq95Oik30srQFLf0o9zqklxtTA/yqXFGEmaUaa18W3MAYiOu7brjc/OC/W2NpzJY+xWD06LLtpIrO8bH3jLIQPkt9ednYn4PK+MhPEive094UleGWVPqTFp12aasIRKi0WyVjGMvmEJbVeno0ym2krT4ivBmDs72ys2z4e+HWVJUT5ux9QNy6Ekv8lLTrxnqVAEE0ohjKfMkMZUONZ5Glbbxa6idT5681x7JaW1dzjZXC+KSWlSjPWKstCUZS4tprJlZqR/qiUb8rD0N4U7aDcEoBactZ0q5gxSL7a2izeLguydubMzkRp3oS3TkshuIr+ukts6dxCbWwoyLf5u8ptJvAlzwxLark5HdQ2msj7kkF+Bjp4PezuqGSyt7RgLuWqTOl9XVM61y69QiEO0Gaqj6DJyI43TKFgcFVxFa3z05rn29jeniYW9/mEqcXKb1SbFlE27hcVVtrSIysa0bEW9KtMn23S/NriluGq7wcm51uUqzKI9Gw5i98kybb3/ayD7OFNfaXQLqL//8oc8+wQU5oWV03ZMWu53Ez9MuRuW6pOtz1GmRP2cI0DmsayjNAs122K8HRn3ktWm6BUypE49DiUKhThEm7EyKtG9boCJ21VRRet79Bai9hZ3lrUdX9WJTx1zteHSYiqbzVFB2k7oQEe3LGgGN22n9cDqDE7izqWoYhaF/koLkizZJ/76/t5Ov3846ffc44hxtZ1g//q+4JOWaLsyjjIl6ukc230iOKrd2i4bfsQ8R/4KLyhuZzCj/AJGtlrhou3Cq2hjj55T3Whb7Y2q7cylY9N2RJnG13br+9JXCuJ2oBGctJ203IkZZdpsaSLOolARH2b6wTa/KpIndmX0ZG+ntzKa9HvdOzuTvZ1e8otjvrSWgkvLRnrmykg8n7uhkmXHmWi1O4qxrXRr6+Z5F0eZ3z3KaJtSb0fGQrba5L2NSUSKdpfvVMTA8XaaGbGnQDLarqIqWtOjN8+110fbuffJWpSui46kb1ha26lOg7YDjeCg7daGs4vz2UEv/AR/mOeh9KMitl/cgy03qepVh5O95M/e9t50snfo2p1kbi7ptNxuqN2TuaE61sSp+a7fUYZEeR9yqOO9itHo5RxlsFAYiWUuGt8sMxZajM9GESU9RMzQVZ8oeOhcCs0Mm+jMOrYcvcfOpajwWa780Zvn2uuut4pBcg41ylhtuLSYymYNcAYJXLnOQ9uB+rFrOypoJ2xKEX3V4sh7USiz2YUWxPJgi8Mm1CHG+cd90vJ6TtrVBxhRabnlzhBpoG+Yd8Zlk//LabvojjKtPmDoe/IcpCWOuZHuFuAo1sLiqlF/yc29liwzdYM6JC/kkZqkDsXzqWyMhZZDhBmGC/UITSRtF72KCvZX/ejNc+21ajvhErHs+MfBXG1YbUdXNofOa9/WRjjfs5QBiEYb95ONOoti8cGWnQA0Ah69EsTulAcACLRQ21Uxi2JxweL7ADQCHr1SQNsBUCEt1HbAiawvBm8XAGoFj14MoO0AqBBoOwAAAACAxQHaDgAAAABgcYC2AwAAAABYHKDtAAAAAAAWB2g7AAAAAIDFYQ60HbOIVLXrS/U3iVVVmUPxJ38F5fFWzkFjykt0pmmtVIv/o94QAAAAqBS7thP2nzh/fjZcFY9uHeWH4u45JhB5jwp/vDZZgrZrHJ+91R39T23ecNtWOPPfyTf8KgAAAKFYtN3qwamw4djGsSjvto6eX5wfby11upVsKZsibH/ucSgm0HbzBZl3Ya/MOES/YduBtgMAgHmA13a98dn585ON/BdB6qmHBidaVC8CbdijAtpuvmC1XVSfRL9h24G2AwCAecAStxucnAtxO0HPrQ1nedCuu5SG9C5Ox2tR7ev1D6k+L+YQgbCptnShtIe04VUdou2Ke8qyjE/LaKGk7dJdqK0ZJ80w7G7u8Oq1XkXki92Hu785nfR7wibo2kbvxP7clnF18bSdbQCf1w0r8SFT1bVzxIrEpJXubm6oNmMNS9TcepXt0QMAABCCbbzd2nCWD7ZTO2QzJZfovANF7UWA6fPy7A5bGUky687OdqEwhODfysgwsspf2xVprYyeSGqGTou0sHglJ8LO6RXImKHm0c2T3FW97T3hhS2mZdN2gqSTbsLITakjXnYvVSiSTBwrqsXVmRFuWIEPCYxlWlxI1sOs2hBVJW7cjs4yAACAUrjMk+2NzzJtl3fC5tpubTgr/hNX20WbRSG/RThML05/bSe8VpmkxbSY01Jt5yHsLGbIL35XT9JXaXcoZhjYtV1xoRiIJecoqB3xJr9F75ONdsP4PiSQvweK+xjHMAg3VKuNmlZMbcdkGQAAQCls2i6ZCXuyUSi8RN4l2u5Ai97F03YWueMzi4J/HQo9oca+oXLj7eQ3FpUWY2HRb+UhI1gzxHet+3wU6ir9lVycadV2VNJZAEl92RcduHTPYHu1XXwfUmQ3Fyb5StqOqIe2tCJqOy7LAAAASsFru43jC23CRDL8Lu2rzYfiyb20EYg4i4KbWLC+L4mDOHE7VVQJATNzWpyFaQymv0muxOFimCSkiqPr+yH3lK6qRNsJKUoKzyXK2GJtF92HFFm4bn1/b6ffP8zGNSauc6+H0HYAADCP2LWduLIJM0929eA05jzZ+LMojDJCHeUTXdsJA9i5tGgLizskMRi3lx9jxlKnm+uqlZHXIjLGq/RXciHaFDPkP11DhuJVLvN/26ztYvuQZGX0ZG+ntzKa9HvdOzuTvZ1e8gtfD2vUdlyWAQAAlMJhDRRlfTtpyJ20vl3EDlnmrRnyQlUHq+UzFaQBRmlHVURtJ73A2LRICyVZllzl8HJlzEjIOjf9PGm+Sham0gB8ofdcGafv/i7Xb8h7oN3aLq4PWZsPJ3vJTXrbe9PJ3qF4E3M9tMYIw2Y8mK9istwx2AYAAMAV61wKYSKF3D/b6Ur7UrRzFoVyoWENlHRVkXHS49nb3pPnNyhDu9IL3Q9JptJpMRbKIbf07W71AGdGcULYJg2Gq8TxW/IbOu9X1bJMazvFeOWVrzrfobwKI32EQvQbxvchzfr+WBlhqa2ko9/Qof9XuNYjzEZcRWd5yUfIAgAAkGjjfrIRZ1EAzsn+eypUu4Hv7QA+BAAAUCkt1HZt2Iti0QlbbwKrVDTleQAAAMCZFmo7UCFZL1jYlh4QJXV7HgAAAPAF2g4AAAAAYHGAtgMAAAAAWByg7QAAAAAAFgdoOwAAAACAxQHaDgAAAABgcZg3bdcZfl5+mvFd8/bMLbuX729uPt1cPW7cks6zNzc3n25uPl09a9oSAAAAYP6xa7vVg9NiXwptx9j0qLJfReV8e9m0tku10c2nm5tPHy43I9xz9+WHSPpGtE1EtDM5J47l7cg1AAAAADpWbbd6cKruJ5vLu7Xh7OJ8drAxPrt12m569enm5v3lbvrn7uX7COqkCpWz+/KDYGcL2b18f3P9crdpMwAAAICFgdd2PUW3CVJv4/jidLxmOKcWmtV2j6+qiHhB2wEAAACgNJa43eDkXIjbGWVcVdpuWoyrm1x2lKNmbbfbmZCj8aSBesOp4yEzj6+IkWq7l+9vFC2lKLZsbNnNzaebmzfT4iq9C/VNYYl4VZ7uszc31y93k0PXL3d3X35QruoS2s54N5cb8hcmbvEcOQdtBwAAAMTFNt5ubTjLB9uZxttVo+2+u1p++nl5kL3yv73sKDLOpO06w+vOt+Idij87g+vlp1eqQLQdosnUmB4SU0N606tPhXbhI3PU0WdvBIElyEpJhL3/cP1mqt+Bi9ttXl5rEo25IWVGV50MsXv5XpWYvCeh7QAAAIB4uMyT7Y3PMm1n0HDxtd1uZ2KLn9n7ZKfiCZ2hKfhnO8SThrXUOQqSmOs+vlKDdnQPqVnbbV5e63Mg3kzTu326epZe+OFyU02uG6LtiBvSZogX2hO15A4AAAAAJbFpu62jTNJlCq/6PtmpfSydWdsJ3bhKt2xyPtO9azzkwubltSzvyFhXcbJZ4Zm1XdHRqXbX5kqxuLC8tqNuSJthyKa731o9FhAAAACYR3htt3Esizl5+F1CdG3nMk/CcM5UHi1nEohVKbzplTgurdBM0ytjUIpQeLS2M3fj1q7tyN7kEG1H2AAAAACActi13eygl/8iL4mSUFHczrdPNhmi9518E6NAZLRj4PRbdYRZqnUeX3GKR5M1dJ+sWf3Uqu1YERau7TDeDgAAAIiMwxooyvp2NcyT7QyulR5V+1yK5Jd0+sVU7ZMVkadZuB4S2H35QdNkcnwu68HkIlL6Qirm6bfJvA1ijkVt2o42owttBwAAALQI61wKYSKFoX9WIVnxLgpJHE7tJ5VXOZGPporw6eflp9edb3c7k1zbKVeJ6o05xCEtZWJQPIbFULS1TgzdtcL8DFEtqYukFPNkQ7SdacmV95e79huazehC2wEAAAAtYt72k50TIFngKAAAAKARoO0qgF/rBIhgP1kAAAAgKtB2MZle0UucAAp56WMAAAAAlAHaDgAAAABgcYC2AwAAAABYHKDtAAAAAAAWh9Zpu//3//t/GrcBAAAAAGBOaZ22AwAAAAAAwbRO2yFuBwAAAAAQjF3brR6cFjtPnA1XhUPi1hTHW81nBgAAAADglmPRdqsHp+p+spm8G5wIW5BtHcWSd4jbAQAAAAAEw2u73vhM2kNWlnrcmQAAAAAAoH4scbvBybkg5hgBF03bIW4HAAAAABCMbbzd2nB2cU6NtxPYOL44nx30Gs8PAAAAAMBtxmWebG98lmk7IjI3ODl/fnE6XotgEOJ2AAAAAADB2LTd1lEm6TKFp8m7ZLYsgnYAAAAAAI3Da7uNY1nMycPvljrZCikRhR3idgAAAAAAwdi1najb1HmyRVSv+ZwAAAAAAACHNVCU9e3kNe2iCzvE7QAAAAAAgrHOpRAmUkhKTv4du1MAAAAAALQA7CcLAAAAALA4tE7bAQAAAACAYFqn7RC3AwAAAAAIpnXaDgAAAAAABNM6bYe4HQAAAABAMK3TdgAAAAAAIJjWaTvE7QAAAAAAgmmdtgMAAAAAAMG0Ttu1MG5394d3D68/Pnx1AjMk7r8YXX988KhpM6IYXFte2uC0Z29ubj6lXD12O7R5ea2dXI7dy/c31y93G/QDoGlJa9MSMwra8PzGMnheGr1nb25u3kyLXx5f3Xy6eta0Y1uPXdutHpwWO0+cDVfzQ8meYymn47XmMxPK/Y23XPORtC+jH+773tPnkpMH1x8f6rx9cbeUGUl6RGUAACAASURBVI75tXjAzKPXD6/fbdyvwht20kZf81KgwcQhKZUo7xgPp1UNI9f0Q9B2Ubn/YnT9sdGagEYPjd48NHq7Lz/cfPpwuSn+uHv5/gbyzoZF260enKr7yYryTjotjrxrIm538iBO86HeM+hLpQpjrEmEJHr3h3cPr1/fq9Yb5N2UF4DLzRmDqUP3XgkJPXpd/jVz94d3ro1y5UDbNca9Vx8f/NBsBAiNHhq99jd6j6/0voXuUieVd2IwD6jw2q43PhP3kFWknsjG8fxuJltFaNrpS8X08NcQJ7//YqTYFpTovVfOn3Qxg1X3N946f7PqF5oNpg4pX94R3kCc0+oO6UHbNcSj1w/fvrgb+d3vCRo9NHqtb/RYAUfKPpBgidsNTs4FMadKvYK14SyStqs/bkd/2RRdBsYm4N4rsSshucP9jbeWXgYhUUONNxlDmXF/4+3HB49SM0Y/3E/vKaQlWpg/n4Yk8gcs+09+ofxUq7kTj8reSLJm94bRwqJ9efRadq+9xTSZUbiRaKSoQ/J7SHsZ0GnlnW5KftOEigvlCnDvVUg/3fQqGyF38/5yt/g96bkwj6vrLoVpu+Kesizj0zJaKGm73ZcfFPvFkX8VfqB/e7n89Lrz7W5n8nn56eflp5+XB5Lc7Ayz359+Xv4uzY7w/8IDnYl6rZn83anUOrrOc4fIenjvlXza/RcjvhEQqigaPSVFNHoOaUVv9B5fab2x0hNHKL+kLWIuvCXYxtutDWfFoDpzh2wnkYDEofYjhaCl34WWS22PLB9S1D073aWs2TI/q/qFtBknD64/jt6+kxq4R6+lBjc/X2gdTElkvzx6/fD63Sj7bpMbxJMHWquRPfOGQ2oLaPAGaWGetSz1/Ia821kzAsYUayYpDRaVVlIcxQ0fvU7/n7d9yYWmJttT3j2+kmTW5uVlpquevRFaN2Mr6a/tirTkj2YuLdLCQtslwk5Mbvflh5rG03x7Kem2766Wn153vk2Pdoafl4fZy+O7q+y0qS4BCcFngHpCyTpvP2Ssh6qakSsbGj00em1v9J69UT5WVYhWAtouwWWebG98lmk7JWhXTKeINpei9riddUSt8QQ+Uk2OorVN+/IJoSfPzNsXd4Vv9HxkgzLEQWiwuDHFqnlCR4baVDHtptpqmL1BW5g3B1ILawp1SFjMiDqmmEuLaU+TL3Jzyy5nxE3euQ86mV7pMs5f2wmxOiZpMS3mtFTb6cKu69CsG8hVmsRVx+WqQqgJEi0N6RUGdyaJ1CtCdJ3B9fLksmM4mUB6FqRaRNZ57pCtHlJiDo0eGr22N3oOjdvm5TU0HIlN2yXq7WSjUHh0n+zsoNd4fvyxjicwD4vJI8ymCm28JInV8+9sSwhdumfxOMlt/asT0wQ00ztD+0XtxymeQzV1oVVSb6h1fxi9wViYNgcGx3JDZCxmlB1TLH09c2kx0Yu7P7wrKoDS5Jlql3UwkEmxyUdvPtFdpeXG28nyi0qLsbDoxqX6i7Ve5gpItF0Rb5vKMTxNLA6n3SKel/TkXne+ddV2RYRJqypUnecO8XVeeO7UBweNHhq9tjd6DuNx4w8CXiR4bbdxLIs5efidRKxu2brjdtYRtexYh6yxk0+gL7GEZCxfP9KFxSdg8aGZDkaxheKpMcXq123x9KpXCc88c4jxBut2sknyyJdiRuCYYm9vsBGRe68+Pnz7+sFbw5ApJY9uc/G4pm16JQ1TixO3U7Vden86Lc7CtO1+9obuQKlB4Vm0nTnsl4XrpsuTy87genmwy5ys1Cji7R7wGnap87L6keoYGj00etbfG2z0ELcriV3bidE4ep7s3A65sw1TdZj0robf+Uu4lo42Rr9n0V7nwYD88fNpLoVPLuVbU3hi5aukXgzmEOMNtpkjvwLl8eBMvjQzmLWmqEP0ABouLUt7yg+gyUeIO1VdTVQJqJPIoms74auaS4u2sLiDbbUqx6/zMn2yRm2nHhL47mp5ctn57mp5sNv99jL9f9I5S8IN52cjH+Qh26OXNhHptFzyQidTVdDoodGruNELHW8HEhzWQFHWtzP2yW4dPZ/PebJqQF5DisPTz570xDpNayLGHHCRbckMw0d50eOjLoakWFs8SGJHgD7aWh4LIp6WDz3mDnHeoC1k1/xUXXf/xQMnM6TW5+4P7+yH5C4SaaQwm5ZiYTYq3DA8RcqjR7hOQB2sls9UkIbHpR2mEbWd1KqyaZEWSn0uyVVEM22ZLlcORtulXa4mdfjt5fLT6+VJ0gm725l8Xp5cF7MuzBh6Hos6FvAatj962dgp49B1NHoGs9HotanRC5wnSzR3tw7rXAphIoWhfzbHHMxrPYZeEvUBK+Z1Z3VXnOlNTP4SJ4qTSwmoDzk7wFkz44HQJVHM8FLmNNEDO/Tf1VG0snnF0WxpLmWGVHbI0EgR3iAstHUYSZPwtSXsSTPEXCtONh1SvSE3QHxa5vyaPnyzq8osYf/4qhjoJnzmpquKfEp6PHcv38vzG+ThcdmF7ockHUanxVgoj6dJu1+T2yppVdntwmm7TibviGVQskBdZ3BtmjmrwAVyQjeGcqnzWr1Co4dGbz4aPSbqz32apssn3faVjbGfLEhhlzAAAMwZHgvt3lbQ6LWbsH0pkg9FaLumLQAtIfruhwCApoBqcQGNXtsx7SdrGYrHTc+6RbRO2yFu1xSN7m4JAIiGoQ8OmECjNwcIU/I73aUkmGcem5sNDsEEi04LtR0AAAAAAAimddoOcTsAAAAAgGBap+0AAAAAAEAwrdN2iNsBAAAAAATTOm0HAAAAAACCaZ22Q9wOAAAAACAYu7ZbPTgt9p8w7hi7dTTPW1MAAAAAACwOFm23enCq7ieryrt8U7I42g5xOwAAAACAYHht1xufSXvIylJP+GXrCHE7AAAAAIDGscTtBidiQE6Vekkkb3bQ68TTdojbAQAAAAAEYxtvtzac5YPttA7ZwUn2C+J2AAAAAAAtwGWebD6iTg7arQ1nF+fHW0udbkxth7gdAAAAAEAwNm2XzIE92SgUXirv5P5ZxO0AAAAAAFoAr+02juVYXTH8buvo+cXpeC07E3E7AAAAAIAWYNd2s4Ne/ks+T3ZwIgzCk0D0DgAAAACgMRzWQFHWt5PmyWYgbgcAAAAA0AKscymEiRSUsOtivB0AAAAAQCvAfrIAAAAAAItD67QdAAAAAAAIpnXaDnE7AAAAAIBgWqftAAAAAABAMK3TdojbAQAAAAAE0zptBwAAAAAAgmmdtkPcDgAAAAAgmNZpOwAAAAAAEEzrtN08xO2+vVx++nn5O/PRzvDz8tMMwzm7nQl1qGbu/vDu4fXHh69OuNPuvxhdf3zwqAHz/vS3P/748zc//rTcuKP8+P7rH3/+JkUxnjlUhff+0f1T495w5s8/zWFZLwDP3tzcvJn6XOLUbtRJc21UfINry0s1CT34y+/+979+97/T3zfvZCP3vvqf//rd33c9D9Vkw+Orm09Xz0Jv++zNzc2nG+EOdm23enBa7EtxNlzND20dKZvJHm81XXI1wWo72zmJtrvufNt0LtI2evTDfe60R68fXr/buN+AeYm2e/G3P3hcNei++Pmb2fcRzfjD0T8yNfbzH48GnheaxYp+SEzlG+9cU96jtJ0oMcsLTd3n33/t6auljpe2i1vKujfq18SRfOjN7ssPN58+XG4KP548uP74UOfti7vZOU7thhP3N94qGlH/xQGPNur+xtsolhekSlfzUqDBxCEplSjCOrxh//1///V3//MXs3pLtB11NC6pjkz461cPXK7a/ep//+t3/33P45CUShTZStuwe/n+Jkze7b78oF1o0XarB6fqfrK5vKtmn7G5j9t5nDMH3P3h3cPr1/eaNsOVyNpueSa96f9w9JP7W99f2+W/DLovSss7m7b7+s/V+Xz+tF08bzTqQ08eX918url6TBw9eRBHwDHoSYQk6tNGnTyIGaw6eaCpXpebMwZTh+69EhJ69Lq8tr77wztXJary+7/XE9+y2SDquQd/cTLpwV9+97//9dV/+hz6z6mQ0O5X5ZXrg79wSnT38r1vHD296vrlrvwjr+164zNpD1lJ6t3ePWRvkba796pNnS9Wor71//xTmRBOCW3HXesKtJ0rt1XbWd4iNXQO3n8xUkJHQYl6tFExeyHub7x1DtTpF5oNpg4p4cYIsju8YWdCXzXx+//+q3OgTr/QHHijDilByt//vbS2+88pH/zjv7jMBGi7pcHJuSDgZKm3CHG7by+Xn153vs3GwD39vDzYFQ6J4mxa/JkeMl0l3VnVdraheNPi6OSyY7df/ci7/2IkPfP3N94WYXyhxSy6XUzNqHSV0wfi91//+I/un5Io18/f/Gh4S5n7/v780zdKd1garOLHpUmdaOlbOR2cpyK8s6l7ksYvz9jgmZSiQZTE1HZ8WoIbCzUgabtB94V4lFUzZFqUozhd8oejf3zz4m9/KO6pyE2lP9SW5fBSJqoN5w1dXSnxVM8a9ae//dF4w9n3dm1HFIpaTyR9zD+V3cdXam+shCmARLUb9zfefnzwaOneq7S5SDsQBd2THFLaE0MSufbK/pNfKLdCXBslppV1X6rn612oRgsLUfXo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" alt="" />

 // This is the SystemTimer implemented by your Operating System (OS)
// You don't know how this timer was implemented. This example just
// show to you how it could looks like. How you could implement a
// callback by yourself if you want to.
class SystemTimer { List<TimeUpdaterCallBack> callbacks = new ArrayList<TimeUpdaterCallBack>(); public void registerCallBackForUpdatesEveryHour(TimeUpdaterCallBack timerCallBack) {
callbacks.add(timerCallBack);
} // ... This SystemTimer may have more logic here we don't know ... // At some point of the implementaion of this SystemTimer (you don't know)
// this method will be called and every registered timerCallBack
// will be called. Every registered timerCallBack may have a totally
// different implementation of the method updateTime() and my be
// used in different ways by different clients.
public void oneHourHasBeenExprired() { for (TimeUpdaterCallBack timerCallBack : callbacks) {
timerCallBack.updateTime(System.currentTimeMillis());
}
}
}

最后是我们虚拟简单的例子中的网站时间更新器:

aaarticlea/png;base64,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" alt="" />

 // This is our client. It will be used in our WebSite example. It shall update
// the website's time every hour.
class WebSiteTimeUpdater { public static void main(String[] args) {
SystemTimer SystemTimer = new SystemTimer();
TimeUpdaterCallBack webSiteCallBackUpdater = new WebSiteTimeUpdaterCallBack();
SystemTimer.registerCallBackForUpdatesEveryHour(webSiteCallBackUpdater);
}
}
上一篇:RestTemplate 微信接口 text/plain HttpMessageConverter


下一篇:抓包工具Charles的简单使用