package Ġdesign patterns . observer . kotlin Ċ Ċ import Ġkotlin . properties . Deleg ates Ċ Ċ class ĠText Input ( value Observer : Ġ( String , ĠString ) Ġ-> ĠUnit ) Ġ{ ĊĠĠĠ Ġvar Ġtext : ĠString Ġby ĠDeleg ates . observable ("") Ġ{ Ġprop , Ġold , Ġnew Ġ-> ĊĠĠĠĠĠĠĠ Ġvalue Observer . invoke ( old , Ġnew ) ĊĠĠĠ Ġ} Ċ } Ċ Ċ val Ġvalue Observer : Ġ( String , ĠString ) Ġ-> ĠUnit Ġ= ĊĠĠĠ Ġ{ Ġold Text , Ġnew Text Ġ-> Ġprintln (" Observer Ġnotified . ĠValue Ġchanged Ġfrom Ġ$ old Text Ġto Ġ$ new Text ") Ġ} Ċ Ċ fun Ġmain () Ġ{ ĊĠĠĠ Ġval Ġtext Input Ġ= ĠText Input ( value Observer ) ĊĊĠĠĠ Ġtext Input . run Ġ{ ĊĠĠĠĠĠĠĠ Ġtext Ġ= Ġ" Hello " ĊĠĠĠĠĠĠĠ Ġtext Ġ= Ġ" World " ĊĠĠĠ Ġ} Ċ }