구식 데이터베이스 연결 탱크 - 포장 디자인 모델

4174 단어 디자인 모드
때때로 한 대상 의 방법 은 우리 가 원 하 는 기능 이 아 닐 수도 있 고, 우 리 는 이 방법 을 덮어 쓸 수 있 기 를 바란다.그리고 복사 에 있어 서 우리 의 가장 솔직 한 느낌 은 하위 클래스 를 통 해 계승 하 는 방식 이다. 그러나 가끔 은 웹 개발 을 사용 할 때 우 리 는 대상 의 실현 인 터 페 이 스 를 얻 을 수 있 고 진정한 대상 이 어떤 유형 에 속 하 는 지 알 수 있다. 예 를 들 어 Connection 인터페이스, HttpServletResponse 인터페이스 등 이다.우 리 는 제3자 Jar 가방 이나 다른 프레임 워 크 의 구체 적 인 실현 류 를 모른다. 그러면 우 리 는 이미 알 고 있 는 인터페이스 방식 으로 특정한 대상 을 강화 하거나 고 치 는 방법 을 사용 할 수 밖 에 없다.
일반적으로 어떤 대상 을 강화 하 는 방법 은 세 가지 가 있다.
(1) 서브 클래스 를 사용 하여 특정한 실현 류 를 계승 한다.
(2) 포장 디자인 모델 을 사용한다.
⑶ 동적 대 리 를 사용한다.
이 편 은 주로 포장 디자인 모델 을 설명 하지만 동태 대리 가 가장 좋 은 해결 방법 이라는 것 을 알 아야 한다.
포장 디자인 모델 은 주로 다음 과 같은 다섯 가지 절차 가 있다.
① 하나의 종 류 를 사용자 정의 하여 목표 대상 (증강 대상) 과 같은 인 터 페 이 스 를 실현 한다.
② 사용자 정의 클래스 에서 구성원 변 수 를 정의 하여 대상 을 기억 합 니 다.
③ 대상 을 받 아들 이 는 구조 함 수 를 정의 한다.
④ 강화 하거나 고 치 려 는 방법 을 덮는다.
⑤ 강화 하거나 고 쳐 쓰 고 싶 지 않 은 다른 방법 에 대해 서 는 방금 목표 대상 을 기억 한 구성원 변 수 를 사용 하여 목표 대상 을 일일이 호출 하 는 방법 을 사용 하면 된다.
데이터베이스 에 연 결 된 Connection 인 터 페 이 스 를 예 로 들 면 데이터베이스 연결 탱크 에서 다른 방법 을 제공 하 는 Connection 대상 은 데이터베이스 에서 직접 제공 하 는 Connection 대상 이 어야 합 니 다. close 방법 은 연결 을 직접 없 앨 수 있 기 때문에 close 방법 으로 연결 을 다시 풀 수 있 는 Connection 대상 을 되 돌려 야 합 니 다.그래서 우 리 는 하나의 포장 류 를 사용 하여 데이터 베이스 가 제공 하 는 Connection 대상 을 밀봉 하고 close 방법 을 복사 하 며 다른 방법 에 대해 서 는 원래 의 대상 을 직접 사용 하여 호출 합 니 다. 코드 는 다음 과 같 습 니 다.
class MyConnection implements Connection{
       //        
        private Connection conn;
        public MyConnection(Connection conn) {
       //      
            this.conn = conn;
        }

        @Override
        public void close() throws SQLException {
     
            connectionList.addFirst(this.conn);  //  close              ,     
    }

@Override
        public Statement createStatement() throws SQLException {
     
            this.conn.createStatement();  //                    , MyConnection             
            return null;
    }
    。。。  //    Connection          ,            (createStatement  )  
}    // MyConnection     

옛날 메모 에서 유래 하 다.

좋은 웹페이지 즐겨찾기