设计模式学习----代理模式

【代理模式解释】

 

类型:结构模式

 

对一些对象提供代理,以限制那些对象去访问其它对象。

 

新建一个买车的接口:

package buy_car_package;
public interface buy_car_package {
    public void buy_car();
}


新建一个people人类,具有买车的行为,所以实现接口buy_car_package:

package buy_car_imple;

import buy_car_package.buy_car_package;
public class people implements buy_car_package {

    private int cash;
    private String username;

    public int getCash() {
        return cash;
    }

    public void setCash(int cash) {
        this.cash = cash;
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }
    public void buy_car() {
        System.out.println(username + "买了一台新车");
    }
}

 

people类不能拥有车,必须经过proxy代理类的认证,符合条件之后才可以拥有车辆,新建一个代理,
这个代理类来考察当前的people是否有资格进行买车:

 

package buy_car_imple;

import buy_car_package.buy_car_package;

public class proxy_buy_car_imple implements buy_car_package {

    private people people;

    public people getPeople() {
        return people;
    }

    public void setPeople(people people) {
        this.people = people;
    }

    public void buy_car() {
        if (people.getCash() > 3000) {
            System.out.println(people.getUsername() + "花" + people.getCash()
                    + "块 买了新车 交易结束");
        } else {
            System.out.println(people.getUsername() + "金钱不够,请继续比赛!");
        }
    }

}


最后创建一个客户端,用来模拟买车的行为:

package run_main;

import buy_car_imple.people;
import buy_car_imple.proxy_buy_car_imple;

public class run_main {
    public static void main(String[] args) {
        people people_ref1 = new people();
        people_ref1.setCash(4000);
        people_ref1.setUsername("高洪岩");

        people people_ref2 = new people();
        people_ref2.setCash(2000);
        people_ref2.setUsername("岩洪高");

        proxy_buy_car_imple proxy_buy_car_imple = new proxy_buy_car_imple();
        proxy_buy_car_imple.setPeople(people_ref1);
        proxy_buy_car_imple.buy_car();

        proxy_buy_car_imple.setPeople(people_ref2);
        proxy_buy_car_imple.buy_car();

    }
}

 

people类实现了buy_car_package接口,代理类proxy_buy_car_imple也实现了buy_car_package接口

proxy_buy_car_imple类和people类是关联关系,proxy_buy_car_imple拥有people

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章