1. 程式人生 > >設計模式學習之代理模式之靜態代理

設計模式學習之代理模式之靜態代理

設計模式學習之代理模式之靜態代理

前言

  • 最近發現設計模式都忘記的七七八八了,打算一邊寫一下部落格,一邊溫習一下設計模式,這裡因為最近寫了一下框架,模擬一下mybatis的代理方式

程式碼

  • 介面
package com.proxy.staticProxy;

public interface DataDao {

    void getData();
}

  • 介面實現
package com.proxy.staticProxy;

public class DataDaoImpl implements  DataDao {
    @Override
    public void getData() {
        System.out.println("從資料庫中獲取資料");
    }
}

  • 代理類

package com.proxy.staticProxy;

public class DataProxy implements  DataDao{

    private DataDao dataDao;

    public DataProxy(DataDao dataDao){
        this.dataDao = dataDao;
    }

    @Override
    public void getData() {
        System.out.println("開啟資料庫...");
        dataDao.getData();
        System.out.println("關閉資料庫...");

    }
}

  • main方法
package com.proxy.staticProxy;

import javax.xml.crypto.Data;

public class Main {

    public static void main(String[] args){
        DataDao dataDao = new DataDaoImpl();
        DataDao dataDaoProxy = new DataProxy(dataDao);

        dataDaoProxy.getData();
    }

}

執行結果

開啟資料庫...
從資料庫中獲取資料
關閉資料庫...

在這裡插入圖片描述