제가 알기로 의존주입은

class Clerk { }

class Cafe {
    private Clerk clerk;

    public Cafe(Clerk clerk) {
        this.clerk = clerk;
    }
}

class Main {
   
    public static void main(String[] args) {
        Clerk clerk = new Clerk();
        Cafe cafe = new Cafe(clerk);
    }
}

위와 같이 외부에서 생성된 인스턴스를 전달받아 사용하는 걸로 알고 있는데
싱글턴 패턴과 같이

class Clerk {
    public static final Clerk singleton = new Watashi();

    private Clerk() { }

    public static getInstance() {
        return singleton;
    }
}

class Cafe {
    private Clerk clerk;

    public Cafe() {
        clerk = Clerk.getInstance();
    }
}


이런 식으로 Cafe 클래스의 외부에서 만들어진 객체를 getInstance 메소드를 통해 반환받을 경우에도 의존주입으로 보나요?
외부에서 객체를 생성하고, Clerk 클래스와 Cafe 클래스 사이에 의존성도 해소돼서 의존주입으로 봐도 되지 않을까 저는 생각하는데

- dc official App