1 Java反应式编程( 二 )


// 观众的行为(观察者-订阅者接口)@FunctionalInterfaceinterface Viewer {public void watch();}// 具体订阅者class ConcreteViewer implements Viewer {@Overridepublic void watch() {System.out.println("正在看表演");}}// 演员(发布者)class Actor {// 观众(订阅者)列表private List<Viewer> viewers = new ArrayList<Viewer>();// 买票(订阅)public void buyticket(Viewer viewer) {viewers.add(viewer);}// 退票(取消订阅)public void refund(Viewer viewer) {viewers.remove(viewer);}// 开始表演public void play() {for (Viewer viewer : viewers) {viewer.watch();}}}/** * 剧院 * * @author 湘王 */public class Theater {public static void main(String[] args) {ConcreteViewer viewer1 = new ConcreteViewer();ConcreteViewer viewer2 = new ConcreteViewer();Actor actor = new Actor();actor.buyticket(viewer1);actor.buyticket(viewer2);actor.buyticket(() -> System.out.println("正在VIP包厢看表演"));actor.play();}}这也是反应式编程的门槛比较高的原因 , 对于一些没有学过设计模式的同学来说,反应式编程确实很不好理解 。这也没办法,因为整个反应式编程的根基就是建立在观察者模式之上的,而且还结合Java9里面的Flow API做了一些改变 , 有兴趣的同学可以自己去了解一下 , 所以总结来说的话,反应式编程的特点就是这样的:

1 Java反应式编程

文章插图
用一句简单的话来概括反应式编程 = 函数式编程 + 流式计算 + 观察者模式 。
感谢您的大驾光临!咨询技术、产品、运营和管理相关问题,请关注后留言 。欢迎骚扰,不胜荣幸~
【1 Java反应式编程】

推荐阅读