Skip to main content

동적 바인딩이란 무엇입니까?

computer 컴퓨터 과학에서 이름 바인딩은 함수 또는 변수 이름과 같은 식별자를 코드 또는 데이터 섹션과 연관시키는 것입니다.가장 일반적인 시나리오에서 정적 바인딩 에서이 매핑은 컴파일 시간에 알려져 있습니다.동적 바인딩에서, 함수에 의해 맵핑 된 물체는 컴파일 시간에 알려지지 않으며 프로그램 실행 시간 동안 만 결정될 수있다.이러한 이유로, 동적 결합을 늦은 바인딩이라고도합니다.동적 결합은 정적 결합으로 유연성을 제공하지 않지만 정적 결합보다 더 많은 성능 비용을 수반합니다. 동적 결합은 객체 지향 프로그래밍의 일부인 다형성과 밀접한 관련이 있습니다.다형성은 동일한 방법 이름을 다른 방식으로 구현할 수 있도록합니다.코드가 컴파일 시간에 정확한 방법을 결정할 수없는 방식으로 작성되지 않으면 동적 바인딩을 사용해야합니다.그러나 형상의 원 서브 클래스는 제곱 서브 클래스의 방식과 다르게 getarea를 구현합니다.따라서 새 객체가 유형 모양으로 생성되고 코드가 해당 모양의 메소드를 호출하면 컴파일러는 모양이 원인지 사각형인지 여부를 알 수있는 방법이 없으므로 알지 못할 것입니다.전화해야 할 방법.올바른 GetArea 방법은 런타임에만 맵핑되기 때문에 동적 바인딩의 예입니다. 프로그램이 객체의 모양을 알고 난 후에는 객체가 어떤 모양인지 알 수 있습니다.사용하십시오.모양 예제 에서이 논리를 명시 적으로 사용하여 동적 바인딩을 피하기 위해 코드가 작성 될 수 있습니다. 모양이 원인 경우 서클 getarea 메소드를 호출하십시오.그렇지 않으면 모양이 정사각형 인 경우 특정 getarea 메소드를 제곱에 호출하십시오.동적 바인딩의 이점은 코드가 대안보다 깨끗하고 유지 가능하다는 것입니다.정적 바인딩 예제에는 코드 복제가 있으며 새로운 유형의 모양이 추가 될 때마다 코드를 업데이트해야합니다.정적 바인딩에서 컴파일러는 어떤 코드를 호출 해야하는지 정확히 알고 코드를보다 효율적으로 실행할 수 있습니다.동적 바인딩의 일부 구현에서 메소드를 지원하지 않는 객체에서 메소드를 호출 할 수 있기 때문에 유형 안전은 문제가 될 수 있습니다.예를 들어, getArea 메소드는 모양이 아닌 객체에서 호출 될 수 있으므로 getArea 방법이 없으므로 런타임 오류가 발생할 수 있습니다.정적 바인딩은 컴파일 오류를 제기 하여이 시나리오를 방지 할 수 있습니다.