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 !
相关文章推荐
- java对世界各个时区(TimeZone)的通用转换处理方法(转载)
- java-注解annotation
- java-模拟tomcat服务器
- java-用HttpURLConnection发送Http请求.
- java-WEB中的监听器Lisener
- Android IPC进程间通讯机制
- Android之获取手机上的图片和视频缩略图thumbnails
- android string.xml文件中的整型和string型代替
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- 介绍一款信息管理系统的开源框架---jeecg
- 聚类算法之kmeans算法java版本
- java实现 PageRank算法
- PropertyChangeListener简单理解
- c++11 + SDL2 + ffmpeg +OpenAL + java = Android播放器
- 插入排序