简单Java代理

代理顾名思义帮助某人某物做某事。代理的好处是我想让你做的你就做,不想给你做的我就不给你做。代码:

public class CarControls {
    
    public void up(int velocity){
        System.out.println("汽车向前移动:" + velocity + "米。");
    }
    
    public void down(int velocity){
        System.out.println("汽车向后移动:" + velocity + "米。");
    }
    
    public void left(int velocity){
        System.out.println("汽车向右移动:" + velocity + "米。");
    }
    
    
    public void right(int velocity){
        System.out.println("汽车向左移动:" + velocity + "米。");
    }
    
    public void stop(){
        System.out.println("汽车停止。");
    }
}

public class CarControlsAgency {
    private String carName;
    private CarControls controls;
    
    public CarControlsAgency(String carName){
        
        this.carName = carName;
        
        controls = new CarControls();
    }
    
    public String getCarName(){
        return carName;
    }
    
    public void up(int velocity){
        controls.up(velocity);
    }
    
    public void down(int velocity){
        controls.down(velocity);
    }
    
    public void left(int velocity){
        controls.left(velocity);
    }
    
    public void right(int velocity){
        controls.right(velocity);
    }
    
    public void stop(){
        controls.stop();
    }
}

public class MainTest {

    public static void main(String[] args) {
        
        CarControlsAgency agency = new CarControlsAgency("宝马");
        System.out.println("车子: " + agency.getCarName());
        
        agency.down(20);
        agency.up(40);
        agency.right(21);
        agency.left(77);
        agency.stop();
    }

}

 

结果输出:

车子: 宝马
汽车向后移动:20米。
汽车向前移动:40米。
汽车向左移动:21米。
汽车向右移动:77米。
汽车停止。

 

代理的好处很多,假如有一个类专门用于存储个人信息,现在又两个权限,第一个权限为:可以访问:姓名,电话号码,地址;第二个权限为:可以访问:id,姓名。

个人信息类:

public class PersonInfo {
    
    //编号
    private int id;
    
    //姓名
    private String name;
    //电话
    private String telephone;
    //地址
    private String address;
    
    public PersonInfo(int id,String name,String telephone,String address){
        
        this.id = id;
        this.name = name;
        this.telephone = telephone;
        this.address = address;
    }
    
    public int getId(){
        
        return id;
    }
    
    
    public String getName(){
        
        return name;
    }
    
    public String getTelephone(){
        
        return telephone;
    }
    
    public String getAddress(){
        
        return address;
    }
    
}

代理权限1:

/*
 * 此代理类需要得到:姓名,电话,地址
 */
public class PersonInfoAgency {

    //代理名字
    private String agencyName;
    
    private PersonInfo person;
    
    public PersonInfoAgency(int id,int age,String name,String address,
            String telephone,String agencyName){
        
        this.agencyName = agencyName;
        person = new PersonInfo(id, agencyName, telephone, address);
    }
    
    public String getAgencyName(){
        
        return agencyName;
    }
    
    public String getName(){
        
        return person.getName();
    }
    
    public String getTelephone(){
        
        return person.getTelephone();
    }
    
    public String getAddress(){
        
        return person.getAddress();
    }
}

 

代理权限2:

/*
 * 此代理类只需得到姓名和id
 */
public class PersonInfoAgency1 {

    //代理名字
    private String agencyName;
    
    private PersonInfo person;
    
    public PersonInfoAgency1(int id,int age,String name,String address,
            String telephone,String agencyName){
        
        this.agencyName = agencyName;
        person = new PersonInfo(id, agencyName, telephone, address);
    }
    
    public String getAgencyName(){
        
        return agencyName;
    }
    
    public int getId(){
        return person.getId();
    }
    
    public String getName(){
        
        return person.getName();
    }
}

测试:

public class MainTest {

    public static void main(String[] args) {
        
        /*CarControlsAgency agency = new CarControlsAgency("宝马");
        System.out.println("车子: " + agency.getCarName());
        
        agency.down(20);
        agency.up(40);
        agency.right(21);
        agency.left(77);
        agency.stop();*/
        
        int id = 1;
        int age  = 10;
        String name = "YJ";
        String telephone = "110";
        String address = "重庆";
        
        String agencyName1 = "权限1";
        String agencyName2 = "权限2";
        
        PersonInfoAgency pa1 = new PersonInfoAgency(id, age, name, address,
                telephone, agencyName1);
        
        PersonInfoAgency1 pa2 = new PersonInfoAgency1(id, age, name, address,
                telephone, agencyName2);
        
        print1(pa1);
        
        print2(pa2);
        
    }
    
    
    public static void print1(PersonInfoAgency pa){
        
        System.out.println(pa.getAgencyName() + " 可以访问以下数据: " );
        System.out.println(" 姓名: "+ pa.getName() +  "  ,电话号码: " +pa.getTelephone() +
                ", 地址:  " + pa.getAddress() );
    }
    
    public static void print2(PersonInfoAgency1 pa){
        System.out.println(pa.getAgencyName() + " 可以访问以下数据: " );
        
        System.out.println("编号: " + pa.getId() + ",  姓名: " + pa.getName());
    }
    

}

输出如下:

权限1 可以访问以下数据:
 姓名: 权限1  ,电话号码: 110, 地址:  重庆
权限2 可以访问以下数据:
编号: 1,  姓名: 权限2

 

posted @ 2013-01-31 15:23  杨隋  阅读(116)  评论(0编辑  收藏  举报