import java.util.ArrayList;
import java.util.List;
import java.util.Observable;
import java.util.Observer;
public class Run {
public class UserSys{
public void login(){
}
}
public class TradeSys{
public void startTrade(){
}
}
public class PetSys{
public void reset(){
}
}
public class Facade{
public UserSys user;
public TradeSys trade;
public PetSys pet;
public void doLogin(){
user.login();
}
public void doTrade(){
trade.startTrade();
}
public void doReset(){
pet.reset();
}
}
public static void main(String[] args) {
Run run = new Run();
}
}
andorid :在观察者AdapterView AdapterDataSetObserver onChanged 中调用requestLayout 会重新
onMeasure,onLayout,onDraw; onMeasure会执行absListView中会obtainView,而这个函数中就会调用到adapger的getView函数
import java.util.ArrayList;
import java.util.List;
import java.util.Observable;
import java.util.Observer;
public class Run {
public interface Observerable {
public void registerDataSetObserver(Observer server);
public void delete(Observer server);
public void notityObserver();
}
// 前
public class A implements Observerable {
public List<Observer> list = new ArrayList<Observer>();
public void handleRequese() {
}
public void registerDataSetObserver(Observer server) {
// TODO Auto-generated method stub
list.add(server);
}
public void delete(Observer server) {
// TODO Auto-generated method stub
list.remove(server);
}
public void notityObserver() {
// TODO Auto-generated method stub
for (int i = 0; i < list.size(); i++) {
list.get(i).update(null, "Message");
}
}
}
public class B implements Observer {
public void update(Observable arg0, Object arg1) {
// TODO Auto-generated method stub
}
}
public class AdapterDataSetObserver implements Observer {
public void update(Observable arg0, Object arg1) {
// TODO Auto-generated method stub
}
}
public class Adapter {
A a = new A();
public void registerDataSetObserver(AdapterDataSetObserver b) {
// TODO Auto-generated method stub
a.registerDataSetObserver(b);
}
}
public class ListView {
public void setAdapter(Adapter adater) {
AdapterDataSetObserver observer = new AdapterDataSetObserver();
adater.registerDataSetObserver(observer);
}
}
public static void main(String[] args) {
Run run = new Run();
ListView list = run.new ListView();
Adapter a = run.new Adapter();
list.setAdapter(a);
a.notityObserver();
}
}
import java.util.List;
import java.util.Observable;
import java.util.Observer;
public class Run {
public interface Observerable {
public void registerDataSetObserver(Observer server);
public void delete(Observer server);
public void notityObserver();
}
// 前
public class A implements Observerable {
public List<Observer> list = new ArrayList<Observer>();
public void handleRequese() {
}
public void registerDataSetObserver(Observer server) {
// TODO Auto-generated method stub
list.add(server);
}
public void delete(Observer server) {
// TODO Auto-generated method stub
list.remove(server);
}
public void notityObserver() {
// TODO Auto-generated method stub
for (int i = 0; i < list.size(); i++) {
list.get(i).update(null, "Message");
}
}
}
public class B implements Observer {
public void update(Observable arg0, Object arg1) {
// TODO Auto-generated method stub
}
}
public class AdapterDataSetObserver implements Observer {
public void update(Observable arg0, Object arg1) {
// TODO Auto-generated method stub
}
}
public class Adapter {
A a = new A();
public void registerDataSetObserver(AdapterDataSetObserver b) {
// TODO Auto-generated method stub
a.registerDataSetObserver(b);
}
}
public class ListView {
public void setAdapter(Adapter adater) {
AdapterDataSetObserver observer = new AdapterDataSetObserver();
adater.registerDataSetObserver(observer);
}
}
public static void main(String[] args) {
Run run = new Run();
ListView list = run.new ListView();
Adapter a = run.new Adapter();
list.setAdapter(a);
a.notityObserver();
}
}
public class Run {
//前
public class A{
public void handleRequese(){
}
}
public class B{
public void start(){
}
}
//后
public interface ITaget{
public void handleRequese();
}
public class A1 implements ITaget{
public void handleRequese(){
}
}
public class Adapter extends B implements ITaget{
public void handleRequese() {
// TODO Auto-generated method stub
super.start();
}
}
public static void main(String[] args) {
Run run = new Run();
ITaget taget =run.new Adapter();
taget.handleRequese();
}
}