"구현 대신 인터페이스 프로그래밍"이라는 용어를 많이 접하게되었으며 그 의미를 이해하고 있다고 생각합니다. 그러나 그것이 이점과 가능한 구현인지 이해하고 싶습니다.
"인터페이스 프로그래밍"이란 가능한 경우 구체적인 구현을 참조하는 대신보다 추상적 인 수준의 클래스 (인터페이스, 추상 클래스 또는 때로는 일종의 수퍼 클래스)를 참조해야 함을 의미합니다.
Java의 일반적인 예는 다음을 사용하는 것입니다.
List myList = new ArrayList();
대신에 ArrayList myList = new ArrayList();
.
이것에 관한 두 가지 질문이 있습니다.
이 접근 방식의 주요 이점을 이해하고 싶습니다. 이점은 대부분 유연성이라고 생각합니다. 구체적인 구현이 아닌보다 높은 수준의 참조로 객체를 선언하면 개발주기와 코드 전체에서 더 많은 유연성과 유지 관리가 가능합니다. 이 올바른지? 유연성이 주요 이점입니까?
'인터페이스 프로그래밍'방법이 더 있습니까? 또는 "구체적인 구현이 아닌 인터페이스로 변수를 선언"하는 것이이 개념의 유일한 구현입니까?
난 자바 구조 인터페이스에 대해 이야기하지 . 나는 OO 원칙 "구현이 아닌 인터페이스에 프로그래밍"에 대해 이야기하고있다. 이 원칙 에서 세계 "인터페이스"는 클래스의 "슈퍼 타입"( 인터페이스, 추상 클래스 또는 더 구체적인 하위 클래스보다 더 추상적이고 덜 구체적인 단순 슈퍼 클래스)을 나타냅니다.