| interne Klasse KittenStoreImpl ( |
| privates val Netzwerk : Netzwerk , |
| der private val parser : Parser |
| ) : KittenStore , DisposableScope von DisposableScope () { |
| |
| private val helper = StoreHelper(State(), ::handleIntent, ::reduce).scope() |
| |
| override fun onNext(value: Intent) { |
| helper.onIntent(value) |
| } |
| |
| override fun subscribe(observer: ObservableObserver<State>) { |
| helper.subscribe(observer) |
| } |
| |
| private fun handleIntent(state: State, intent: Intent): Observable<Effect> = |
| when (intent) { |
| is Intent.Reload -> reload(network, parser) |
| } |
| |
| private fun reload(network: Network, parser: Parser): Observable<Effect> = |
| // Omitted code |
| |
| private fun reduce(state: State, effect: Effect): State = |
| // Omitted code |
| |
| private sealed class Effect { |
| // Omitted code |
| } |
| |
| interface Network { |
| fun load () : Vielleicht < String > |
| }} |
| |
| Schnittstelle Parser { |
| Fun Parse ( json : String ) : Vielleicht < List < String >> |
| }} |
| }} |