So as some of you may know, Magento 2 recommended way to deal with models/collections for CRUD actions is to use service contracts.
But still according to the Magento SE Q&A it seems like most people tend to use the model/resource model/collection directly instead.
As an example to load a quote I can do it directly via the factory like this:
$this->quoteFactory is an instance of
But I can also do it via service contract like this:
$this->quoteRepository is an instance of
So my questions is what are the benefits of using service contracts over factories ?