E inutile creare due classi App e AppInstallata.
Ti serve una classe App.
Nello store due set e sposti le app da uno all'altro quando le installi/disinstalli.
App dovrebbe essere un oggetto a se, lo store dovrebbe semplicemente passare le informazioni necessarie al costruttore.