In our RCP application we have views which require a C, and use an IAdapterFactory to get there from an A and B. The problem is that while A->C is fast, B->C is much slower (e.g., a database or file-system look-up) and should be done in a UI job.
We thought about using a CProxy or LightweightC and asking the proxy or a service for the real C in a UI job, but this solution feels like it breaks the intended purpose of adapters since views will be required to know that they can't directly access a C through the adapter factory.
Is there a best practice in this case, or am I forced to have my views understand that sometimes a more expensive conversion is necessary?