All right.
So let's try to summarize what we've learned about the adaptive pattern.
Not a particularly difficult pattern.
Implementing an adapter is rather easy because all you have to do is you have to determine the API that
you have the API that you're getting from somewhere as well as the API that you need to provide to some
other component and then you create a component which actually aggregates typically aggregates the activities
so you can have a reference to whatever is being adapted or you can even instantiated.
And then of course you may end up having intermediate representations of state.
So if your team has to generate certain information for the adapted interface for the interface that
is actually required then you would have to store additional data.
And this means that you have to be careful about how long this data is stored for and where this store.
So this is the way you would use caching and other optimizations to make sure that as you adapt one
interface to another you're not spawning too much data you're not taking up too much memory.
And also you're cleaning up the memory when it's no longer required.