728x90
반응형
Java
- 대표적인 예제 Jdbc 있음
import java.sql.*;
public class JdbcExample {
public static void main(String[] args) throws ClassNotFoundException {
Class.forName ("org.h2.Driver");
try (Connection conn = DriverManager.getConnection ("jdbc:h2:mem:~/test", "sa","")) {
String sql = "CREATE TABLE ACCOUNT " +
"(id INTEGER not NULL, " +
" email VARCHAR(255), " +
" password VARCHAR(255), " +
" PRIMARY KEY ( id ))";
Statement statement = conn.createStatement();
statement.execute(sql);
// PreparedStatement statement1 = conn.prepareStatement(sql);
// ResultSet resultSet = statement.executeQuery(sql);
} catch (SQLException e) {
throw new RuntimeException(e);
}
}
}
- try부분 이 추상화 부분 sql 검색해서 결과 있으면 저장하고 하는 부분
- 구체적인 곳은
- Dirver부분임 (h2를 쓰나, MS SQl를 쓰나 이런거 )
- 새로운 DB만들어지더라도 jdbc를 바꾸지 않음
- 드라이버 매니저 부분이 바뀌지 않는것
- 바뀌지 않고 새로운 db를 만들어 확장이 가능되는것임 그 점에서 같음
slf4j
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class Slf4jExample {
private static Logger logger = LoggerFactory.getLogger(Slf4jExample.class);
public static void main(String[] args) {
logger.info("hello logger");
}
}
- 시각에 따라 다르지만 일종의 브릿지 패턴과 유사하다고 할 수 있음
- Logger나 LoggerFactory는 바뀌지 않음
- 로깅퍼사드는 로거 감싸서 만들어주는 API
- 라이브러리나 프레임 워크에서 로그4j같은 구체적인 로거를 사용한다고하면 다른 라이브러리나 클라이언트 코드도 쓰는건데, 클라이언트에서 정할 수 있어야함
Spring
- 직접적으로 찾기 힘들었지만 일부분이라고 할 수 있는 것
import org.springframework.jdbc.support.JdbcTransactionManager;
import org.springframework.mail.MailSender;
import org.springframework.mail.javamail.JavaMailSenderImpl;
import org.springframework.transaction.PlatformTransactionManager;
public class BridgeInSpring {
public static void main(String[] args) {
MailSender mailSender = new JavaMailSenderImpl();
PlatformTransactionManager platformTransactionManager = new JdbcTransactionManager();
}
}
- MailSender, PlatformTransactionManager 구체적인 인터페이스 부분
- JavaMailSenderImpl, JdbcTransactionManager인플리멘테이션의 구현체들임
728x90
반응형
'CS Study > 디자인패턴' 카테고리의 다른 글
2021.12.09_컴포짓패턴02.패턴적용하기 (0) | 2021.12.09 |
---|---|
2021.12.09_컴포짓패턴01.패턴소개 (0) | 2021.12.09 |
2021.12.08_브릿지패턴03.장점과단점 (0) | 2021.12.08 |
2021.12.07_브릿지패턴02.패턴적용하기 (0) | 2021.12.08 |
2021.12.08_브릿지패턴01.패턴소개 (0) | 2021.12.08 |
댓글