on
[Jump2Java] 05장 객체지향 프로그래밍 05
[Jump2Java] 05장 객체지향 프로그래밍 05
Jump2Java 05장. 객체지향 프로그래밍
- 인터페이스
인터페이스
객체와 객체 사이에서 일어나는 상호 작용의 매개로 쓰인다. (서로 이어주는 다리 역할과 프로젝트의 설계도로 생각하면 됩니다.)
모든 기능을 추상화로 정의한 상태로 선언만 한다.
public interface InterfaceName { // .. }
인터페이스의 사용 이유 (장점) 개발 시간을 단축 시킬 수 있습니다. 이러한 특징을 가진 인터페이스를 사용하면 다른 개발자들이 각각의 부분을 완성할 때 까지 기다리지 않고 서로 규약만 정해두어 각자의 부분만 따로 나눠서 작성된 코드를 컴파일 할 수 있습니다. 클래스간 결합도를 낮출 수 있습니다. 코드의 종속성을 줄이고 유지보수성을 높이도록 해줍니다. 표준화가 가능합니다. 클래스의 기본틀을 제공하여 개발자들에게 정형화된 개발을 강요할 수 있습니다.
하나의 인터페이스로 여러 구현체를 쉽게 구현할 수 있다.
예시 - ZooKeeper가 Predator에게 먹이를 주는 구현
// Predator.java (interface) public interface Predator { public String getFood(); }
// Tiger.java public class Tiger extends Animal implements Predator{ // interface를 implements 하면 해당하는 interface 안에 있는 메서드를 정의해야 한다. public String getFood() { return "apple"; } }
// Lion.java public class Tiger extends Animal implements Predator{ public String getFood() { return "banana"; } }
// ZooKeeper.java (main) public class ZooKeeper { public void feed(Predator predator) { System.out.println("feed " + predator.getFood()); } public static void main(String[] args) { ZooKeeper zooKeeper = new ZooKeeper(); Tiger tiger = new Tiger(); Lion lion = new Lion(); zooKeeper.feed(tiger); zooKeeper.feed(lion); } } /* 출력결과 feed apple feed banana */
ZooKeeper 클래스가 동물들의 종류에 의존적인 클래스에서 동물들의 종류와 상관없는 독립적인 클래스가 되었다는 점이 인터페이스의 핵심이다.
from http://yoonveloping.tistory.com/28 by ccl(A) rewrite - 2021-09-14 01:27:02