确保所有进入团队的用户都可以看到他们在自己身上的位置和变化。 团队可能随时加入或退出,当有人退出并影响用户位置排名时,需要立即反馈给用户
模式观察者模式的典型实现场景
1 import java.util.Iterator; 2 import java.util.LinkedList; 3 import java.util.List; 4/**6*排队系统实现7 *,使排队的所有用户都能看到自己的位置和变化。 团队可能随时加入或退出,如果有人退出并影响用户位置排名,则必须立即反馈给用户8 *使用观察者模式9 * @ authorgxf 10 * 11 */12 publiccccication 队列14 privatelistpeoplequeue=neter 516 publicstaticvoidmain 字符串[ ] args ) 17 lineupsystemlineupsystem=newlineupsystem ) 18 people peoples [ ]=new people [ 10 ]; 19forintI=1; i peoples.length; I ) 20 peoples [ I ]=new people line up system,’ zhangsan’ i ); 21 peoples[i].add ; 22 ) 2324 ) 2526//27公共语音添加people people ) 28queue.add ) people ); 29通告所有人员; 30 ) 31//32公共语音退出people people ) 33queue.remove ) people ); 34通告所有人员; 35 ) 36//通知队列中所有人员的位置37 public void notifyAllPeople ) 38 iteratorpeopleit _ people=queue.iterator ); 39whileit_people.hasnext ) ) {40 People temp=it_people.next ); 41intindex=queue.indexoftemp ); 42 temp.set position 索引1 ); 43 temp.showPosition ; 44 ) 45 ) 4647 ) 4849/**50*排队的人51 * @ authorgxf 52 * 53 */54 class people 55//排队的56专用线路up系统队列57 //队列中的位置58专用位置; 59私有字符串名称; 6061公共人员lineupsystemqueue,String name ) {62 this.queue=queue; 63 this.name=name; 64 ) 6566//67公共语音添加) {68queue.add ) this ); 69 ) 70//71公共语音退出) 72 queue.equals this ); 73 ) 74//队列中的位置75 publicvoidsetposition int position ) {76 this.position=position; 78//队列中显示的位置79 public void showPosition ) 80system.out.println ) name ‘在队列中的位置为: ‘ position ); 81 ) 82}
转载于:https://www.cn blogs.com/luckygxf/p/4689255.html