본문 바로가기
[study]이론정리/JAVA(eclipse)

java 10일차 _ 01. 인터페이스( loosely Coupling )

by yoon9i 2024. 3. 21.
package exam16_인터페이스3_looselyCoupling;

public class TestMain2 {

	public static void main(String[] args) {
		
		DBService2 service = new DBService2();
		
		// oracle
		service.setDAO(new OracleDAO2());
		service.connect();
		
		// myslq
		service.setDAO(new MySQLDAO2());
		service.connect();
	}

}
package exam16_인터페이스3_looselyCoupling;

public interface DBDAO2 {

	public abstract void connect(); // 추상메서드
}
package exam16_인터페이스3_looselyCoupling;

public class DBService2 {
	
	// 다형성
	DBDAO2 dao;
	
	public void setDAO(DBDAO2 dao) {
		this.dao = dao;
	}
	
	public void connect() {
		dao.connect();
	}
}
package exam16_인터페이스3_looselyCoupling;

public class MySQLDAO2 implements DBDAO2  {

	@Override
	public void connect() {
		System.out.println("MySQLDAO connect 호출");
	}

}
package exam16_인터페이스3_looselyCoupling;

public class OracleDAO2 implements DBDAO2 {

	@Override
	public void connect() {
		System.out.println("OracleDAO connect 호출");
	}

}

 

loosely Coupling 같은 경우에는 Oracle 과 MySQL 은 바로 Service 로 가지않고 DAO 를 통해서 connect 를 해서

바꿔야 할때 Main 에서만 변경하면 된다.