这个习题,是老师们经常布置的作业习题。我们最近也布置了这个作业,这个可以实现的很简单,完全为了应付作业,直接写个小孩类child和父亲类Father类,然后在Father类中写个线程,去不停的监视小孩的状态。这能实现,但是这好比父亲一直守到小孩的床边看着小孩一样,父亲这时就只能做这一件事了,如果再加个条件的话,比如小孩在不同的时间段醒来,需要的也不同的话,那就麻烦了,比如小孩在上午和下午醒来需要父亲抱,而在中午醒来需要母亲喂奶,那么父亲和母亲都得在床边守着小孩,这样很不合理,可扩展性差。
其实,这道题是意在考我们的设计模式,这道题主要是想考我们一个事件驱动模型,就像AWT的事件模型一样。这里我们可以换一种思维来思考,就是让小孩醒来去通知在监听他的人。这样,父亲和母亲就可以去干别的事了,呵呵!
这里我们可以设计一个事件类WakeEvent,一个监听接口WakeListener,小孩child中添加个添加监听者的方法,这里就要用到接口回调了。
主要思考点就是让小孩醒来去通知监听他的人,我写的一个demo代码,仅供参考:
如转载请注明出处,谢谢!