慕粉1506175688
观察者:
com.lone.watcherlombok.lombok.java.util.function.BiConsumerWeatherObserver Observer {
String BiConsumer<WeatherSubjectWeatherObserver> (Subject subject) {
(!(subject WeatherSubject)) {
IllegalArgumentException()}
.accept((WeatherSubject) subject)}
}测试:
com.lone.watchercom.lone.watcher.WeatherSubject.Statelombok.extern.slf4j.Main {
(String[] args) {
Observer girlfriend = WeatherObserver((subjectobserver) -> {
State state = subject.getSubjectState()(State.== state) {
.info(observer.getName()subject.getContent())}
})Observer mother = WeatherObserver((subjectobserver) -> {
State state = subject.getSubjectState()(State.== state || State.== state) {
.info(observer.getName()subject.getContent())}
})WeatherSubject subject = WeatherSubject()subject.attach(girlfriend)
.attach(mother)subject.setSubjectState(State.)subject.setContent()}
}可否这样写,用户自定义自己的行为,Subject的广播仍然存在,但在用户端过滤了。
Peter_Matrix