Java 코드연습/인터페이스

[뉴렉처] 객체 단위로 분리/결합을 위한 인터페이스 구현하기

양상추상츄 2021. 11. 1. 00:55

결정지어지지 않았거나 나중에 교체가 될 수 있는 부분을 인터페이스로 만들어서 후에 결정될 수 있게함

 

기업용 어플리케이션이나 유지보수가 필요 할때 인터페이스가 필요하다.

 

인터페이스 구현하는 4가지 상황


 

package Exam_1.인터페이스;

public class Program {

	public static void main(String[] args) {
		A a = new A();
		a.print();
		
	}

}

 

안에서 결합하는 일체형 결합상태

package Exam_1.인터페이스;

public class A {
	private B b;
	
	public A() {
		b = new B();// private B b를 사용하기 위해 생성자로 결합
	}
	
	public void print() {
		int total = b.total();
		System.out.printf("total is %d\n", total);
	}

}
package Exam_1.인터페이스;

public class B {

	public int total() {
		return 30;
	}
	
}

인터페이스를 구현하기전 코드 (결합력이 높은 코드)


package Exam_1.인터페이스;

public interface X {//오직 기능만 적음 
	int total();//앞에 public같은 보호같은거 필요없음
}
package Exam_1.인터페이스;

public class A {
	private X x; // x는 b를 호출함
	
	public void setX(X x) { //도킹역할
		this.x = x; // 핸드폰의 베터리 단자 같은 역할
	}

	public A() {
		//b = new B();// private B b를 사용하기 위해 생성자로 세팅
	}
	
	public void print() {
		int total = x.total();
		System.out.printf("total is %d\n", total);
	}

}
package Exam_1.인터페이스;

public class B implements X {

	public int total() {
		return 30;
	}
	
}
package Exam_1.인터페이스;

public class Program {

	public static void main(String[] args) {
		A a = new A();//핸드폰
		B b = new B();//베터리
		a.setX(b);//핸드폰을 베터리에 꽂음
		a.print();
		
	}

}

결합력이 낮은 코드