易截截图软件、单文件、免安装、纯绿色、仅160KB

Java 设计模式(12)

Observer
Intent
Define a one-to-many dependency between objects so that when one object changes state, all its dependents are notified and updated automatically.
How to
Subject
  
knows its observers. Any number of Observer objects may observe a subject.
  
provides an interface for attaching and detaching Observer objects.
Observer
  
defines an updating interface for objects that should be notified of changes in a subject.
Known cases
Listener
MVC
Publish-Subscribe
UML
 
代码样例:
package org.haha.DesignPatterns.observer;
import java.util.ArrayList;
import java.util.List;
public class Observable {
private List<Observer> observers;

public Observable() {
observers = new ArrayList<Observer>();
}

public void register(Observer obs) {
observers.add(obs);
}

public void unregister(Observer obs) {
observers.remove(obs);
}

public void remind() {
for (Observer obs : observers) {
obs.update(this);
}
}
}
package org.haha.DesignPatterns.observer;
public abstract class Observer {
public Observer() {
}
abstract public void update(Observable subject);
}
package org.haha.DesignPatterns.observer;
import java.util.List;
import java.util.ArrayList;
public class Subject extends Observable {
private List<String> datas = new ArrayList<String>();

public void addData(String data) {
datas.add(data);
remind();
}

public List<String> getDatas() {
return datas;
}
}
package org.haha.DesignPatterns.observer;
import java.util.List;
public class Subscriber extends Observer {
private String name;
public Subscriber(String name) {
super();
this.name = name;
}

public void update(Observable sub) {
if (sub instanceof Subject) {
List<String> datas = ((Subject)sub).getDatas();
for (String str : datas) {
System.out.println("Name=" +name + " " + str);
}
}
}
}
p


相关文档:

centOS5 下的java环境配置

第一步:查看Linux自带的JDK是否已安装 (卸载centOS已安装的1.4)
<1># rpm -qa|grep jdk ← 查看jdk的信息或直接执行

# rpm -q jdk

# java -version
<2># rpm -qa | grep gcj ← 确认gcj的版本号
<3># yum -y remove java-1.4.2-gcj-compat ← 卸载gcj
第二步:安装JDK
< ......

java中汉字转拼音

代码如下:
  以下为引用的内容:
  package com.example.pinyin.demo2;
  import net.sourceforge.pinyin4j.PinyinHelper;
  import net.sourceforge.pinyin4j.format.HanyuPinyinCaseType;
  import net.sourceforge.pinyin4j.format.HanyuPinyinOutputFormat;
  import net.sourceforge.pinyin4j.form ......

java读写删.text,.xml文件内容

package fileIo;  
 
import  java.io.BufferedReader;  
import  java.io.BufferedWriter;  
import  java.io.File;  
import  java.io.FileReader;  
import  java.io.FileWriter;  
 
 public&nb ......

RedHat AS4配置Java环境

到Sun网站下载自解压安装包jdk-xxxx.bin
安装:
[root@RHEL4 JDK-1.5.0.06]# chmod +x jdk-xxxx.bin
[root@RHEL4 JDK-1.5.0.06]# ./jdk-xxxx.bin
选择安装位置,
J2SDK安装目录: /usr/local/jdk
配置Java环境变量:
在 ~/.bash_profile 里加入下列几行环境变量即可:
export JAVA_HOME=/usr/local/jdk
export PAT ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号