快乐学习 一个网站喵查铺子(catpuzi.com)全搞定~

某在线游戏支持多人联机对战,每个玩家都可以加入某一战队组成联盟,当战队中某一成员受到敌人攻击时将给所有盟友发送通知,盟友收到通知后将作出响应。使用观察者模式设计并实现该过程。运行结果为:杨过被攻击!紧急通知,盟友杨过遭受敌人攻击!坚持住,令狐冲来救你!坚持住,张无忌来救你!坚持住,段誉来救你!Observer充当抽象观察者角色,Player充当具体观察者角色,Ally充当观察目标角色。代码如下所示:public interface Observer {    public String getName();    public void setName(String name);    public void help();    public void beAttacked(Ally ally);}public class Player implements Observer{    private String name;    public Player(String name)    {        this.name = name;    }     @Override    public void 【代码1】(String name)    {        this.name = name;    }    @Override    public String 【代码2】()    {        return this.name;    }    @Override    public void 【代码3】()    {        System.out.println(“坚持住,” + this.name + “来救你!”);    }   @Override    public void 【代码4】(Ally ally)    {        System.out.println(this.name + “被攻击!”);        ally.notifyObserver(name);    }}import java.util.*;class Ally{    private ArrayList players = new ArrayList();    public void join(Observer obs)    {        players.【代码5】(obs);    }    public void quit(Observer obs)    {        players.【代码6】(obs);    }    public void notifyObserver(String name)    {        System.out.println(“紧急通知,盟友” + name + “遭受敌人攻击!”);        for(Object obs : players)        {            if (!((Observer)obs).getName().equalsIgnoreCase(name))            {                ((Observer)obs).help();            }        }    }}public class Client {    public static void main(String[] args) {        Ally ally=new Ally();        Observer play1,play2,play3,play4;        play1=new Player(“杨过”);        play2=new Player(“令狐冲”);        play3=new Player(“张无忌”);        play4=new Player(“段誉”);        ally.【代码7】(play1);        ally.【代码8】(play2);        ally.【代码9】(play3);        ally.【代码10】(play4);        play1.beAttacked(ally);    }}

热门题目 网课答案 2022-11-24 扫描二维码

题目:某在线游戏支持多人联机对战,每个玩家都可以加入某一战队组成联盟,当战队中某一成员受到敌人攻击时将给所有盟友发送通知,盟友收到通知后将作出响应。使用观察者模式设计并实现该过程。运行结果为:杨过被攻击!紧急通知,盟友杨过遭受敌人攻击!坚持住,令狐冲来救你!坚持住,张无忌来救你!坚持住,段誉来救你!Observer充当抽象观察者角色,Player充当具体观察者角色,Ally充当观察目标角色。代码如下所示:public interface Observer {    public String getName();    public void setName(String name);    public void help();    public void beAttacked(Ally ally);}public class Player implements Observer{    private String name;    public Player(String name)    {        this.name = name;    }     @Override    public void 【代码1】(String name)    {        this.name = name;    }    @Override    public String 【代码2】()    {        return this.name;    }    @Override    public void 【代码3】()    {        System.out.println(“坚持住,” + this.name + “来救你!”);    }   @Override    public void 【代码4】(Ally ally)    {        System.out.println(this.name + “被攻击!”);        ally.notifyObserver(name);    }}import java.util.*;class Ally{    private ArrayList players = new ArrayList();    public void join(Observer obs)    {        players.【代码5】(obs);    }    public void quit(Observer obs)    {        players.【代码6】(obs);    }    public void notifyObserver(String name)    {        System.out.println(“紧急通知,盟友” + name + “遭受敌人攻击!”);        for(Object obs : players)        {            if (!((Observer)obs).getName().equalsIgnoreCase(name))            {                ((Observer)obs).help();            }        }    }}public class Client {    public static void main(String[] args) {        Ally ally=new Ally();        Observer play1,play2,play3,play4;        play1=new Player(“杨过”);        play2=new Player(“令狐冲”);        play3=new Player(“张无忌”);        play4=new Player(“段誉”);        ally.【代码7】(play1);        ally.【代码8】(play2);        ally.【代码9】(play3);        ally.【代码10】(play4);        play1.beAttacked(ally);    }}

喵查答案:["setName", "getName", "help", "beAttacked", "add", "remove", "join", "join", "join", "join"]
喜欢 (0)
关于作者: