package Ġinfo . moe vm . mood le . data Ċ Ċ import Ġandroid . content . Context Ċ import Ġinfo . moe vm . mood le . data . courses . Courses Repository Ċ import Ġinfo . moe vm . mood le . data . courses . impl . Fake Courses Repository Ċ import Ġinfo . moe vm . mood le . data . posts . Posts Repository Ċ import Ġinfo . moe vm . mood le . data . posts . impl . Fake Posts Repository Ċ Ċ /** Ċ Ġ* ĠDependency ĠInjection Ġcontainer Ġat Ġthe Ġapplication Ġlevel . Ċ Ġ*/ Ċ interface ĠApp Container Ġ{ ĊĠĠĠ Ġval Ġposts Repository : ĠPosts Repository ĊĠĠĠ Ġval Ġcourses Repository : ĠCour ses Repository Ċ } Ċ Ċ /** Ċ Ġ* ĠImplementation Ġfor Ġthe ĠDependency ĠInjection Ġcontainer Ġat Ġthe Ġapplication Ġlevel . Ċ Ġ* Ċ Ġ* ĠVariables Ġare Ġinitialized Ġl az ily Ġand Ġthe Ġsame Ġinstance Ġis Ġshared Ġacross Ġthe Ġwhole Ġapp . Ċ Ġ*/ Ċ class ĠApp Container Impl ( private Ġval Ġapplication Context : ĠContext ) Ġ: ĠApp Container Ġ{ ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠBy Ġdefault , Ġthe Ġcalculation Ġof Ġlazy Ġproperties Ġis Ġsynchronized : ĊĠĠĠĠ Ġ* Ġthe Ġvalue Ġis Ġcalculated Ġonly Ġin Ġone Ġexecution Ġthread , Ġand Ġall ĊĠĠĠĠ Ġ* Ġother Ġthreads Ġcan Ġsee Ġthe Ġsame Ġvalue ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġval Ġposts Repository : ĠPosts Repository Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠ ĠFake Posts Repository ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresources Ġ= Ġapplication Context . resources ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġval Ġcourses Repository : ĠCour ses Repository Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠ ĠFake Courses Repository () ĊĠĠĠ Ġ} Ċ } Ċ