package Ġme . sh ou h eng . service . impl Ċ Ċ import Ġandroid . content . Context Ċ import Ġcom . alibaba . android . ar outer . facade . annotation . Route Ċ import Ġme . sh ou h eng . api . bean . User Ċ import Ġme . sh ou h eng . api . sample . On User ChangeListener Ċ import Ġme . sh ou h eng . api . sample . UserService Ċ import Ġme . sh ou h eng . utils . st ability . L Ċ import Ġjava . util . concurrent . Copy On Write ArrayList Ċ Ċ /** Ċ Ġ* ĠUser Ġinfo Ġservice Ġimplementation Ċ Ġ* Ċ Ġ* Ġ@ author ĠW ng Sh h ng Ġ 2 0 1 9 - 0 7 - 0 5 Ċ Ġ*/ Ċ @ Route ( path Ġ= Ġ"/ api / user ") Ċ class ĠUser ServiceImpl Ġ: ĠUserService Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġlisteners Ġ= ĠCopy On Write ArrayList < On User ChangeListener >() ĊĊĠĠĠ Ġoverride Ġfun Ġrequest User () Ġ{ ĊĠĠĠĠĠĠĠ Ġfor Ġ( listener Ġin Ġlisteners ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlistener . on User Changed ( User (" J eff ", Ġ 1 8 )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġregister User ChangeListener ( user ChangeListener : ĠOn User ChangeListener ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ(! listeners . contains ( user ChangeListener )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlisteners . add ( user ChangeListener ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġun Register User ChangeListener ( user ChangeListener : ĠOn User ChangeListener ) Ġ{ ĊĠĠĠĠĠĠĠ Ġlisteners . remove ( user ChangeListener ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġinit ( context : ĠContext ?) Ġ{ ĊĠĠĠĠĠĠĠ ĠL . i ( User ServiceImpl :: class . java . name Ġ+ Ġ" Ġinitialized .") ĊĠĠĠ Ġ} Ċ Ċ }