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 에서만 변경하면 된다.
'[study]이론정리 > JAVA(eclipse)' 카테고리의 다른 글
java 10 일차 _ 03. 익명클래스 (0) | 2024.03.21 |
---|---|
java 10 일차 _ 02. 중첩클래스 (0) | 2024.03.21 |
java 10일차 _ 01. 인터페이스( interface tightCoupling ) (0) | 2024.03.21 |
java 10일차 _01. 인터페이스 (0) | 2024.03.21 |
java 10일차 _ 9일차 정리 (0) | 2024.03.21 |