2013-03-19 2 views
2

패키지는 그 내용을 구성하고 분류하기 위해 설계된 클래스 및 인터페이스의 모음임을 알고 있습니다. 클래스는 객체의 정의이고, 클래스는 둘 다, 속성/변수 및 함수/메소드에 대한 지침입니다.Actionscript에서 인터페이스의 주요 기능은 무엇입니까?

그러나, 나는 인터페이스가 무엇인지 이해하기 위해 아직, 또는 그것을 위해 ...

나는 어도비의 웹 사이트에이 정의를 읽고 정말 무엇인가 .. :

인터페이스

사용

interface InterfaceName [extends InterfaceName ] {}

6,는 인터페이스를 정의합니다. 인터페이스는 일련의 메소드를 정의하는 데이터 유형입니다. 메소드는 인터페이스를 구현하는 모든 클래스에 의해 정의되어야합니다.

인터페이스는 다음과 같은 중요한 차이 클래스와 유사하다 :

• 인터페이스 메소드의 선언 만, 구현되지 않은이 포함되어 있습니다. 즉, 인터페이스를 구현하는 모든 클래스는 인터페이스에 선언 된 각 메소드에 대한 구현을 제공해야합니다.

Interface • 메소드 정의는 속성과 같은 public 또는 private하지만, 구현 방법으로 인터페이스를 구현하는 클래스의 정의에 public로 표시되어야합니다 가질 수 없습니다.

• 인터페이스는 extends 문을 사용하거나 implements 문을 통해 클래스를 통해 여러 인터페이스를 상속 할 수 있습니다.

ActionScript 2.0과 달리 ActionScript 3.0에서는 인터페이스 정의에 getter 및 setter 메서드를 사용할 수 있습니다.

... 그러나 이것은 너무 모호하여 유용하지 않습니다.

ActionScript에서 인터페이스의 목적과 적절한 구현 및/또는 디자인을 아는 사람이 있습니까?

+3

인터페이스는 인터페이스를 구현하는 클래스에 대한 계약으로 간주됩니다. 인터페이스를 사용하여 Polymorphism이라고하는 OOP 기본 사항 중 하나를 사용하고 있습니다. 다형성은 ActionScript에만 적용되는 것이 아닙니다. Google에 "AS3 IAnimal"이라는 첫 번째 링크가 좋은 설명입니다. –

+0

나의 2 센트 : 나는 인터페이스를 생각할 때마다 나는 플러그인을 생각한다. 기존 애플리케이션의 플러그인을 작성하려면 기존 애플리케이션의 메소드 개요에 부합하는지 확인해야합니다. 따라서 플러그인은 응용 프로그램과 올바르게 작동하는 인터페이스를 구현해야합니다. 미래 클래스를위한 템플릿과 같습니다. – bigLarry

답변

7

인터페이스는 기본적으로 "이 클래스는 이러한 작업을 수행 할 수 있습니다."

실례로 화면의 각기 다른 컨트롤을 하나씩 강조 표시하는 게임에 대한 자습서를 만들 수 있습니다.각 컨트롤 플래시 또는 자체를 강조하기 위해 반송, 그래서 당신은 그들이 "IHighlightable"인터페이스를 구현하는 말을하고 그들이 알아서하도록 할 수 있습니다 귀하의 컨트롤에 다음

public interface IHighlightable { 

    function highlight():void; 

} 

:

public class Control implements IHighlightable { 

    public function highlight():void { 
     // Bounce and flash! 
    } 

} 

당신은 클래스가 때 클래스 공유 능력 유용 여러 인터페이스를 구현 할 수 있습니다, 중요한

private function highlightControl(tutorialItem:IHighlightable):void { 

    tutorialItem.highlight(); 

} 

하지만, 그렇지 않습니다 : 이것은 당신이 좋아하는 일을 할 수 있다는 것을 의미합니다 그들 모두가 공통 기본 클래스를 확장하도록하는 것이 합리적입니다.

+0

미니 레슨을 보내 주셔서 감사합니다, David! 나는 지금 그것을 더 잘 이해한다고 생각한다. – Kamari

1

인터페이스는 계약 있습니다. 그것은 메소드를 구현하도록 강제하는 시간 메커니즘을 컴파일합니다. 대형 OOP 코드 기반에서는 다른 클래스가 다른 클래스가 아닌 인터페이스에 종속되도록하는 것이 가장 좋습니다. 따라서 인터페이스를 사용하는 코드를 변경하지 않고 구현을 바꿀 수 있습니다 (이 이점은 실제로는 변하지 않습니다. 너무 바뀔 것이다).

나는 인터페이스가 (당신은 하나 개의 클래스 만 확장 할 수 있지만 당신이 할 수있는 여러 추상 클래스를 상속하지 않고 (ClassA가 동시에 입력 IFooIBar이 될 수 있습니다) 다형성을 달성하기 위해 그들을 소개 자바에서 차용하는 생각 임의의 수의 인터페이스 구현).

+0

Mockolate와 같은 항목을 사용하여 인터페이스 용 모조품을 제공하는 것이 더 쉽기 때문에 AS3에서도이 기능을 좋아합니다. –

관련 문제