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 클래스가 동물들의 종류에 의존적인 클래스에서 동물들의 종류와 상관없는 독립적인 클래스가 되었다는 점이 인터페이스의 핵심이다.
'Application > Java' 카테고리의 다른 글
[Jump2Java] 06장 입출력 01 (0) | 2021.09.15 |
---|---|
[Jump2Java] 05장 객체지향 프로그래밍 06 (0) | 2021.09.14 |
[Jump2Java] 05장 객체지향 프로그래밍 04 (0) | 2021.09.14 |
[Jump2Java] 05장 객체지향 프로그래밍 03 (0) | 2021.09.14 |
[Jump2Java] 05장 객체지향 프로그래밍 02 (0) | 2021.09.14 |
댓글