вот такой вопрос, пилю маленькое ядро, настраиваю DI, и вот я понимаю что правильнее делать интерфейс, потом в DI создавать элемент ClassInterface::class и уже в function создавать инстанс реализации, насколько это вообще надо так упарываться, ведь можно сделать допущение что никто не будет писать свою реализацию и тогда я могу просто сразу сделать одну дефолтную реализацию и сразу в DI ее сделать как Class::class и использовать, всегда остается возможность переопределить элемент в DI и повесить свою реализацию вместо той что в Class:class или даже свой элемент добавить и использовать у себя его?