title: How to use Flutter BLoC pattern on specific scenarios?
body: <p>Recently I am start to learn Flutter and its BLoC partten, and there are many class in BLoC library, like <code>Bloc</code>, <code>PublishSubject</code>, <code>StreamController</code>, <code>BehaviorSubject</code> and etc..</p>
  <p>My question is, what the scenarios that I can use these classes? For example, I can inherited from <code>bloc</code> or not inherited from it, but why? I am confuse for that, What's the usage scenarios for those classes?</p>