应用的开发架构:BLoC
其意思是业务逻辑组件,其实就是把业务需要的一些逻辑单独拿出来放在一个类里面。这种类就叫Bloc
可以使用这种架构创建反应式的应用。
这种架构是Google发出来的,其开源APP:万物起源。就用的是BLoc。
1.BLoC: BusinessLogicComponent的缩写【业务逻辑组件】
其实就是把业务需要的一些逻辑单独拿出来放在一个类里面。这种类就叫Bloc。
Bloc会用到Dart里面的Stream/Rxdart里的Observables。在应用里面,用户与页面的交互可能会产生一些数据,在APP其他的一些地方可能会用到这些产生的数据。例如购物车:用户按了添加到购物车这个按钮,应用的其他几个地方可能要做出相应的反应,如更新一下购物车图标上的商品的数量等。这就是反应式的应用/响应式的应用。
在StreamController里面,sink的功能主要是往Stream上面添加一些数据。可以创建一个Bloc,里面去添加一个Sink,然后在应用的界面上去使用这个Sink往Stream上去添加数据。比如按了购物车按钮以后,可以执行一下sink上面的add(),去往stream上面添加一个数据,在Bloc里面我们可以去监听一下这个Stream,当Stream这个上面有数据的时候就做出一些反应,它会输出stream。在视图层,我们可以去订阅/监听这个Stream,根据它上面的数据去构建小部件。当Stream上面的数据有变化以后会使用新的数据重新构建这个小部件,这里要用的是前面文章介绍到的StreamBuilder这个小部件,它可以根据Stream上面的数