3. 에이전트 모델

1649 단어

1. 에이전트 모드의 의미


프록시 모드: 이 대상에 대한 접근을 제어하기 위해 다른 대상에게 대역이나 자리 차지 문자를 제공합니다.
먼저'대리'가 무엇인지 말해 보세요. 사실 대리인은 이해하기 쉬워요. 대리인을 이도상인으로 보고 듣기 좋게 대리상이라고 불러요.바로 네가 물건을 사서 생산지에서 직접 사지 않고 두 개의 장사꾼, 세 개의 장사꾼을 통해 구매하는 것이다. 이런 장사꾼들이 바로 대리상이다. 바로 우리가 오늘 말한 대리상이다.구체적으로 말하자면, 예를 들어 네가 무 한 그루를 사려고 한다면, 일반인들은 채소 농가를 찾아가서 그들에게 돈을 주고 직접 밭에 가서 무를 뽑지 않을 것이다.대부분의 사람들은 상초를 통해 무를 얻는다. 이런 상초는 소위 무 대리상, 즉 이도상인이다.

2. 상황 설정


3. 코드 구현


3.1 OC 코드 데모


3.2 Swift 코드 데모


에이전트는 Swift에서도 비교적 자주 사용하는 편이다. 클립, 즉 Block의 간편한 활용이지만 에이전트의 역할은 여전히 완전히 대체될 수 없다. 사실 이것도 개발자의 습관에 달려 있다.
프록시 사용 단계는 다음과 같이 코드로 설명합니다.
The first step: define a protocol
  • Swift에서 협의를 제정하려면 NSObjectProtocol 협의를 준수해야 한다. 클래스를 제외하고 협의를 준수할 수 있고 구조체도 협의를 준수할 수 있다
  • OC에서 우리는 협의를 제정하는데 보통 NSObject에서 계승한다. 이렇게 이해할 수 있다. 모든 NSObject에서 계승된 대상은 협의 방법을 실현할 수 있다(마찬가지로 우리는 어떤 대상이 우리가 제정한 협의 방법을 실현할 수 있는지도 지정할 수 있다)
  • NSObjectProtocol을 쓰지 않으면 오류가 발생하지 않지만, 속성을 쓸 수 없습니다.
    protocol myDelegate {
        //  
        func myAction(result: Int)
    }
    

    The second step: Declare an agent property
    weak var delegate: myProtocol?
    

    The third step: abide by the myProtocol
    class B: myDelegate
    

    The fourth step: set A instance's delefate
    a.delegate = self
    

    The fifth step: implement delegate method
    func myAction(result: Int) {
            print(#function)
    }
    

    The sixth step: call delegate method
  • '?'responsed 대신
  • self.delegate?.myAction(result: 1)
    

    좋은 웹페이지 즐겨찾기