본문 바로가기
Programming/JAVA(eclipse)

java 10일차 _ 01. 인터페이스( interface tightCoupling )

by yoon9i 2024. 3. 21.
package exam16_interface2_tightCoupling;

// tightCoupling : Oracle 에서 MySQL 로 변경할려고 하면 Oracle 코드를 전부다 MySQL 로 변경해야한다.

public class TestMain {

	public static void main(String[] args) {
		
		DBService service = new DBService();
		
		// Oracle DB 사용
//		service.setDAO(new OracleDAO());
//		service.connect(); // >>> OracleDAO connect_oracle() 호출
		
		// MySQL 변경
		service.setDAO(new MySQLDAO());
		service.connect(); // >>> MySQLDAO connect_mysql() 호출
	}

}
package exam16_interface2_tightCoupling;

public class DBService {
	
	// 사용하는 클래스를 직접 지정
//	OracleDAO dao;
//	
//	public void setDAO(OracleDAO dao) {
//		this.dao = dao;
//	}
//	
//	public void connect() {
//		dao.connect_oracle();
//	}
	
	MySQLDAO dao;
	
	public void setDAO(MySQLDAO dao) {
		this.dao = dao;
	}
	
	public void connect() {
		dao.connect_mysql();
	}
}
package exam16_interface2_tightCoupling;

public class OracleDAO {
	
	// Oracle 연동 메서드
	public void connect_oracle() {
		System.out.println("OracleDAO connect_oracle() 호출");
	}
	
}
package exam16_interface2_tightCoupling;

public class MySQLDAO {
	// MySQL 연동 메서드
	public void connect_mysql() {
		System.out.println("MySQLDAO connect_mysql() 호출");
	}
}

 

Tight Coupling 같은 경우에는 예를들어서 Oracle DB 에서 MySQL 로 바꿀려고하면 설정된 모든것들을 일일이 변경해줘야

하는 불편함이있다.