package Ġcom . ark iv an ov . mv ik otlin . sample . todo . common . internal . store . add Ċ Ċ import Ġcom . ark iv an ov . mv ik otlin . core . store . Executor Ċ import Ġcom . ark iv an ov . mv ik otlin . core . store . Reducer Ċ import Ġcom . ark iv an ov . mv ik otlin . core . store . Store Ċ import Ġcom . ark iv an ov . mv ik otlin . core . store . Store Factory Ċ import Ġcom . ark iv an ov . mv ik otlin . core . utils . Jvm Serializable Ċ import Ġcom . ark iv an ov . mv ik otlin . sample . todo . common . internal . store . add . Todo Add Store . Intent Ċ import Ġcom . ark iv an ov . mv ik otlin . sample . todo . common . internal . store . add . Todo Add Store . Label Ċ import Ġcom . ark iv an ov . mv ik otlin . sample . todo . common . internal . store . add . Todo Add Store . State Ċ Ċ /** Ċ Ġ* ĠAbstract Ġfactories Ġare Ġnormally Ġnot Ġneeded . ĠJust Ġcreate Ġa Ġnormal Ġfactory Ġas Ġdescribed Ġ[ here ][ Store ]. Ċ Ġ* ĠIn ĠM VI Kotlin Ġsamples Ġabstract Ġfactories Ġare Ġused Ġbecause Ġeach Ġ` Store ` Ġhas Ġtwo Ġimplementations : Ġusing ĠRe akt ive Ġand Ġcor outines . Ċ Ġ*/ Ċ abstract Ġclass ĠTodo Add Store Abstract Factory ( ĊĠĠĠ Ġprivate Ġval Ġstore Factory : ĠStore Factory Ċ ) Ġ{ ĊĊĠĠĠ Ġfun Ġcreate (): ĠTodo Add Store Ġ= ĊĠĠĠĠĠĠĠ Ġobject Ġ: ĠTodo Add Store , ĠStore < Intent , ĠState , ĠLabel > Ġby Ġstore Factory . create ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġname Ġ= Ġ" Todo Add Store ", ĊĠĠĠĠĠĠĠĠĠĠĠ ĠinitialState Ġ= ĠState (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexecutor Factory Ġ= Ġ:: create Executor , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreducer Ġ= ĠRed ucer Impl ĊĠĠĠĠĠĠĠ Ġ){ ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġprotected Ġabstract Ġfun Ġcreate Executor (): ĠExecutor < Intent , ĠNothing , ĠState , ĠMsg , ĠLabel > ĊĊĠĠĠ Ġprotected Ġsealed Ġclass ĠMsg Ġ: ĠJ vm Serializable Ġ{ ĊĠĠĠĠĠĠĠ Ġdata Ġclass ĠText Changed ( val Ġtext : ĠString ) Ġ: ĠMsg () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġobject ĠRed ucer Impl Ġ: ĠRed ucer < State , ĠMsg > Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun ĠState . reduce ( msg : ĠMsg ): ĠState Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( msg ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠMsg . TextChanged Ġ-> Ġcopy ( text Ġ= Ġmsg . text ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ