ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 의존성 주입
    Swift 2023. 9. 24. 15:22

    의존성 주입(Dependency Injection)

     

    객체의 생성과 사용 관심사를 분리하는 프로그래밍 설계 방식입니다. 클래스간 의존성을 클래스 외부에서 주입하는 것을 뜻하며, 일반적으로 우리가 사용하는 의존성 주입은 클래스에 대한 의존성의 인터페이스화를 통한 코드 유연성 증대 + 클래스간 의존성을 외부에서 주입하는 것을 뜻합니다. 

     

     

     

    public class Dependency {
        public func doSomething() {
            print("Dependency doing something")
        }
    }
    
    public class MyClass {
        public func doSomething() {
            let dependency = Dependency()
            dependency.doSomething()
        }
    }

    MyClass는 Dependency 클래스 인스턴스인 dependency를 직접적으로 접근해서 doSomething 메서드를 실행.  

    MyClass 클래스에서 Dependency 클래스를 직접 생성.

    MyClass 클래스와 Dependency 클래스 간의 의존성이 명시적으로 드러나지 않음.

    코드를 수정할 때에서 일일히 다 찾아가서 수정해줘야해서 번거로움.

     

    public class Dependency {
        public func doSomething() {
            print("Dependency doing something")
        }
    }
    
    public class MyClass {
        public var dependency: Dependency?
    
        public func doSomething() {
            if let dependency = self.dependency {
                dependency.doSomething()
            }
        }
    }

    의존성을 주입할 때는 MyClass 객체를 생성한 후, dependency 프로퍼티에 Dependency 객체를 할당

    이후 MyClass의 doSomething() 메서드를 호출하면 Dependency의 doSomething() 메서드가 호출됨

    public var dependency: Dependency?

    의존성을 명시적으로 드러냄

    let dependency = Dependency()
    let myClass = MyClass()
    myClass.dependency = dependency
    myClass.doSomething()

    'Swift' 카테고리의 다른 글

    Codable 프로토콜  (0) 2023.10.28
    네이버 지도 이용시 멀티스레딩  (0) 2023.09.24
    싱글톤 패턴  (0) 2023.09.23
    메모리 구조  (0) 2023.09.23
    코디네이터 패턴 (feat. 진입점: SceneDelegate에서 관리)  (0) 2023.09.17
Designed by Tistory.