为了账号安全,请及时绑定邮箱和手机立即绑定

第四章妈妈和女友订阅不同的天气状态,我有更好的解答,核心代码在下面,就是重写notifyObserver()方法用三层for循环。我太聪明了!

protected void notifyObserver() {

//第一层for循环遍历所有订阅人

    for(Observer observer:observers){

 //订阅人设置的要提醒的天气状态,字符串数组形式存储

        String[] observerWeathers= ((ConcreteObserver)observer).getObserverWeathers();

 //目标更新的天气状态也是数组,毕竟一天可以有多种天气,晴转多云,雨转晴。第二层for循环遍历这些状态

        for (String weatherContent : weatherContents) {

//第三层for循环遍历订阅人自定义的需要提醒的天气状态

            for(String observerWeather:observerWeathers){

//如果当天的天气状态中有订阅人所关注的一种天气,就会提醒订阅人

                if(weatherContent.equalsIgnoreCase(observerWeather)){

                    observer.update(weatherContents);

//这有个小bug,如果当天天气为晴和雨,而且订阅人也设定了晴和雨时要提醒,那么会给订阅人发送两次一

//模一样的消息.用break;跳出也没有用,毕竟有这么多层循环

                }

        }

    }

}


正在回答

3 回答

哇  你好聪明啊

0 回复 有任何疑惑可以回复我~

 String[] observerWeathers= ((ConcreteObserver)observer).getObserverWeathers(); 这个能 生成数组?


0 回复 有任何疑惑可以回复我~

明显性能差一些啊,楼上。3层for循环,你别吓我好么

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

第四章妈妈和女友订阅不同的天气状态,我有更好的解答,核心代码在下面,就是重写notifyObserver()方法用三层for循环。我太聪明了!

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信