>Java >java지도 시간 >인터페이스를 통한 항목 참조 객체

인터페이스를 통한 항목 참조 객체

Linda Hamilton
Linda Hamilton원래의
2024-10-25 09:42:02290검색

Item  Referencie os objetos através das interfaces deles

참조 유형으로 인터페이스 선호:
적합한 인터페이스가 존재하는 경우 구체적인 클래스 대신 이를 통해 객체를 참조해야 합니다.
이는 매개변수, 반환 값, 변수 및 필드에 적용됩니다.

인터페이스 사용 시 유연성:
인터페이스를 사용하면 코드에 영향을 주지 않고 구현을 변경할 수 있습니다.
예: LinkedHashSet에서 HashSet 또는 TreeSet으로 변경하려면 생성자를 변경하면 됩니다.

인터페이스를 사용하지 말아야 할 경우:
구현별 기능:
구현이 인터페이스에 필요하지 않은 것을 제공하는 경우(예: LinkedHashSet은 반복 순서를 보장하지만 HashSet은 보장하지 않습니다).

적절한 인터페이스가 없는 경우:
String 또는 BigInteger와 같은 일부 클래스에는 동등한 인터페이스가 없으므로 직접 사용해야 합니다.

클래스 기반 프레임워크:
예: java.io 패키지의 OutputStream은 인터페이스가 아닌 추상 클래스를 통해 참조됩니다.

구현별 방법:
예: PriorityQueue는 Queue를 구현하지만 Queue에 없는 comparator() 메서드가 있습니다. 이 추가 메소드가 필요한 경우에만 클래스를 사용하세요.

혜택:
인터페이스를 사용하면 프로그램이 더욱 유연해지고 모듈화되어 기존 코드를 손상시키지 않고도 구현을 쉽게 변경할 수 있습니다.

코드 예시
좋은 예: 인터페이스를 유형으로 사용

Set<String> s = new LinkedHashSet<>();

나쁜 예: 구체적인 클래스를 유형으로 사용

LinkedHashSet<String> s = new LinkedHashSet<>();

유연성: 코드에 영향을 주지 않고 구현 변경

Set<String> s = new TreeSet<>();

String과 같은 최종 클래스를 사용하는 예

String str = "Hello";

프레임워크 기본 클래스 사용 예

OutputStream output = new FileOutputStream("file.txt");

위 내용은 인터페이스를 통한 항목 참조 객체의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.