Czy zawsze należy utworzyć interfejs, jeśli istnieje możliwość, że może być coś innego, co mogłoby go użyć, lub poczekać, aż pojawi się rzeczywiste zapotrzebowanie, a następnie zastosować refaktor?Czy należy utworzyć interfejs, kiedy (obecnie) będzie tylko jedna klasa, która go implementuje?
Programowanie do interfejsu wydaje się generalnie jak radą dźwięku, ale wtedy nie YAGNI ...
myślę, może to zależy od sytuacji. W tej chwili mam obiekt reprezentujący folder, który może zawierać przepisy lub inne foldery. Zamiast korzystać bezpośrednio z Folder, czy powinienem się martwić o wdrożenie czegoś takiego jak IContainer? W przypadku, gdy w przyszłości chcę mieć przepis, który odwołuje się do innych receptur podrzędnych (na przykład przepis na szarlotkę, który jest również pojemnikiem na recepturę skórki pierożków):
YAGNI, nie będziesz go potrzebować -> nie będziesz tego potrzebować –
Dokładnie. Za każdym razem, gdy wprowadzałem interfejsy lub cokolwiek "na wszelki wypadek", okazało się, że nigdy nie potrzebowali tego. Ale twój przebieg może się różnić. –