zoukankan      html  css  js  c++  java
  • TRA

    Review

    本周看了 《Fundamentals of Software Architecture》 的 "Chapter-14 Event-Driven Architecture“ , 其中对比了

    • 层层分发控制逻辑的模式 ,和 无控制逻辑,依赖事件驱动的模式(Android 的 EventBus) 的特点
    • 举出了一些例子场景分析了这两模式的典型使用方式等
    • Event-Driven Topology 里的一些常见问题以及通用解决方法

    阅读感受(简单的感受,可能不够有条理,不能作为覆盖性质的总结):

    • Event-Driven 会导致其中各个组件的终极解耦(毫无关联);但同时会丢掉一些信息,因为其哲学就是 ”组件之间互相一无所知,组件无法知道 event 的来源是谁“。是以忽略一些信息为代价换来的解耦。
      • 拓展提问: 解耦是否都是以丧失信息为代价的? POP 哲学变为 OOP 哲学, 是不是也是丢弃了一部分(不值得在意的)信息?
      • Event-Driven 比较适合组件之间的信息不需要在意的情况。
    • Event-Driven 比较适合 触发 而非 请求 的场景,即 不关心返回值和执行的情况
      • 这点比较难做,因为绝大多数 同步 的程序,组件之间都会有 请求
    • 组件之间的解耦越高,越适合 Event-Driven 的模式。
      • 例如多进程的场景

    Event-Driven Topology 适合满足如下条件的场景 (下面的”组件“指的即是 ”EventProcessor“):

    • 组件和组件之间的联系复杂,每个组件至少可以被两个其余的组件发出的非初始事件触发。
    • 所有的事件的触发不依赖执行结果

    Tip

    MacOS 上浏览网页的话,如果有不认识的单词,可以将鼠标指向该单词,使用快捷键 Ctrl + Cmd + D 直接进行原生 Dictionary 的翻译。

    Alg

    统计「优美子数组」

    这是一个 0-1 背包问题,比较简单

  • 相关阅读:
    [loj3031]聚会
    [loj3146]路灯
    [loj2049]网络
    [luogu7599]雨林跳跃
    [loj3069]整点计数
    [loj3301]魔法商店
    [loj3333]混合物
    [cf1515I]Phoenix and Diamonds
    [cf1515H]Phoenix and Bits
    [atARC116F]Deque Game
  • 原文地址:https://www.cnblogs.com/wkmcyz/p/14059410.html
Copyright © 2011-2022 走看看