-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
7d185b0
commit ee14a69
Showing
34 changed files
with
759 additions
and
160 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
22 changes: 0 additions & 22 deletions
22
comprehensive/src/main/java/com/luo/observer/impl/CurrentConditionsDisplay.java
This file was deleted.
Oops, something went wrong.
22 changes: 0 additions & 22 deletions
22
comprehensive/src/main/java/com/luo/observer/impl/ForecastDisplay.java
This file was deleted.
Oops, something went wrong.
22 changes: 0 additions & 22 deletions
22
comprehensive/src/main/java/com/luo/observer/impl/StatisticsDisplay.java
This file was deleted.
Oops, something went wrong.
22 changes: 0 additions & 22 deletions
22
comprehensive/src/main/java/com/luo/observer/impl/ThirdPartyDisplay.java
This file was deleted.
Oops, something went wrong.
40 changes: 0 additions & 40 deletions
40
comprehensive/src/main/java/com/luo/observer/impl/WeatherData.java
This file was deleted.
Oops, something went wrong.
12 changes: 0 additions & 12 deletions
12
comprehensive/src/main/java/com/luo/observer/inter/Observer.java
This file was deleted.
Oops, something went wrong.
16 changes: 0 additions & 16 deletions
16
comprehensive/src/main/java/com/luo/observer/inter/Subject.java
This file was deleted.
Oops, something went wrong.
14 changes: 14 additions & 0 deletions
14
comprehensive/src/main/java/com/luo/observer/simple/Example.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,14 @@ | ||
package com.luo.observer.simple; | ||
|
||
/** | ||
* @author luoxuzheng | ||
* @create 2019-09-15 19:39 | ||
**/ | ||
public class Example { | ||
|
||
public static void main(String[] args) { | ||
Subject subject = new SimpleSubject(); | ||
Observer observer = new SimpleObserver(subject); | ||
((SimpleSubject) subject).setValue(1); | ||
} | ||
} |
16 changes: 16 additions & 0 deletions
16
comprehensive/src/main/java/com/luo/observer/simple/Observer.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,16 @@ | ||
package com.luo.observer.simple; | ||
|
||
/** | ||
* 观察者 | ||
* | ||
* @author luoxuzheng | ||
* @create 2019-09-15 19:43 | ||
**/ | ||
public interface Observer { | ||
|
||
/** | ||
* 通知 | ||
* @param value | ||
*/ | ||
void update(Integer value); | ||
} |
27 changes: 27 additions & 0 deletions
27
comprehensive/src/main/java/com/luo/observer/simple/SimpleObserver.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,27 @@ | ||
package com.luo.observer.simple; | ||
|
||
/** | ||
* @author luoxuzheng | ||
* @create 2019-09-15 19:47 | ||
**/ | ||
public class SimpleObserver implements Observer { | ||
|
||
//通知数据 | ||
private Integer value; | ||
private Subject subject; | ||
|
||
public SimpleObserver(Subject subject) { | ||
this.subject = subject; | ||
subject.registerObserver(this); | ||
} | ||
|
||
@Override | ||
public void update(Integer value) { | ||
this.value = value; | ||
display(); | ||
} | ||
|
||
public void display() { | ||
System.out.println("value:" + value); | ||
} | ||
} |
42 changes: 42 additions & 0 deletions
42
comprehensive/src/main/java/com/luo/observer/simple/SimpleSubject.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,42 @@ | ||
package com.luo.observer.simple; | ||
|
||
import java.util.ArrayList; | ||
import java.util.List; | ||
|
||
/** | ||
* @author luoxuzheng | ||
* @create 2019-09-15 19:47 | ||
**/ | ||
public class SimpleSubject implements Subject { | ||
|
||
private List<Observer> observers; | ||
private Integer value = 0; | ||
|
||
public SimpleSubject() { | ||
this.observers = new ArrayList<>(); | ||
} | ||
|
||
@Override | ||
public void registerObserver(Observer observer) { | ||
this.observers.add(observer); | ||
} | ||
|
||
@Override | ||
public void removeObserver(Observer observer) { | ||
int index = this.observers.indexOf(observer); | ||
if (index >= 0) | ||
this.observers.remove(observer); | ||
} | ||
|
||
@Override | ||
public void notifyObservers() { | ||
for (Observer observer : this.observers) { | ||
observer.update(value); | ||
} | ||
} | ||
|
||
public void setValue(Integer value) { | ||
this.value = value; | ||
notifyObservers(); | ||
} | ||
} |
28 changes: 28 additions & 0 deletions
28
comprehensive/src/main/java/com/luo/observer/simple/Subject.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,28 @@ | ||
package com.luo.observer.simple; | ||
|
||
/** | ||
* 被观察者 | ||
* | ||
* @author luoxuzheng | ||
* @create 2019-09-15 19:42 | ||
**/ | ||
public interface Subject { | ||
|
||
/** | ||
* 注册观察者 | ||
* @param observer | ||
*/ | ||
void registerObserver(Observer observer); | ||
|
||
/** | ||
* 移除观察者 | ||
* @param observer | ||
*/ | ||
void removeObserver(Observer observer); | ||
|
||
/** | ||
* 通知观察者 | ||
*/ | ||
void notifyObservers(); | ||
|
||
} |
17 changes: 17 additions & 0 deletions
17
comprehensive/src/main/java/com/luo/observer/simpleobservable/Example.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,17 @@ | ||
package com.luo.observer.simpleobservable; | ||
|
||
|
||
import java.util.Observer; | ||
|
||
/** | ||
* @author luoxuzheng | ||
* @create 2019-09-15 19:39 | ||
**/ | ||
public class Example { | ||
|
||
public static void main(String[] args) { | ||
SimpleObservable observable = new SimpleObservable(); | ||
Observer observer = new SimpleObserver(observable); | ||
observable.setValue(1); | ||
} | ||
} |
22 changes: 22 additions & 0 deletions
22
comprehensive/src/main/java/com/luo/observer/simpleobservable/SimpleObservable.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,22 @@ | ||
package com.luo.observer.simpleobservable; | ||
|
||
import java.util.Observable; | ||
import java.util.Observer; | ||
|
||
/** | ||
* @author luoxuzheng | ||
* @create 2019-09-15 20:02 | ||
**/ | ||
public class SimpleObservable extends Observable { | ||
private Integer value; | ||
|
||
public void setValue(Integer value){ | ||
this.value = value; | ||
setChanged(); | ||
notifyObservers(value); | ||
} | ||
|
||
public Integer getValue() { | ||
return value; | ||
} | ||
} |
39 changes: 39 additions & 0 deletions
39
comprehensive/src/main/java/com/luo/observer/simpleobservable/SimpleObserver.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,39 @@ | ||
package com.luo.observer.simpleobservable; | ||
|
||
import java.util.Observable; | ||
import java.util.Observer; | ||
|
||
/** | ||
* 观察者 | ||
* | ||
* @author luoxuzheng | ||
* @create 2019-09-15 20:01 | ||
**/ | ||
public class SimpleObserver implements Observer { | ||
private Integer value; | ||
private Observable observable; | ||
|
||
public SimpleObserver(Observable observable) { | ||
this.observable = observable; | ||
this.observable.addObserver(this); | ||
} | ||
|
||
@Override | ||
public void update(Observable o, Object arg) { | ||
|
||
//1、被通知 | ||
this.value = (Integer) arg; | ||
display(); | ||
|
||
//2、主动拉取 | ||
if(o instanceof SimpleObservable){ | ||
this.value = ((SimpleObservable) o).getValue(); | ||
display(); | ||
} | ||
} | ||
|
||
public void display() { | ||
System.out.println("value:" + value); | ||
} | ||
|
||
} |
Oops, something went wrong.