您的位置:首页 > 编程语言 > Java开发

java观察者模式

2016-02-26 14:31 453 查看
package cn.yang.test.controller;

import java.util.ArrayList;
import java.util.List;

/**观察者模式
* Created by Dev_yang on 2016/2/26.
*/
public class Test {

public static void main(String[] args) {

TVImp tvImp=new TVImp();
tvImp.registUser(new UserImpl("user1"));
tvImp.registUser(new UserImpl("user2"));
tvImp.registUser(new UserImpl("user3"));
tvImp.sendMessage("hello everyone !");

}
}

interface TV{
void registUser(User user);
void removeUser(User user);
void notifyAllUser();

}

class TVImp implements TV{
private List users=new ArrayList<User>();
private  String message;

public void sendMessage(String message) {
this.message = message;
notifyAllUser();
}

public void notifyAllUser() {

for (int i = 0; i < users.size(); i++) {
User user= (User) users.get(i);
user.update(message);
}
}

public void registUser(User user) {
users.add(user);

}

public void removeUser(User user) {

int i = users.indexOf(user);
users.remove(i);
}
}

interface User{
void update(String s);
}

class UserImpl implements User{
private String userName;

public UserImpl(String userName) {
this.userName = userName;
}

public void update(String s) {
System.out.println(userName+":receive message from TV----"+s);
}
}


控制台输出结果为:

user1:receive message from TV—-hello everyone !

user2:receive message from TV—-hello everyone !

user3:receive message from TV—-hello everyone !
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息