JAVA 静态代理 纯享代码

以房客租房子为例,其中涉及三个角色即:房东、中介、租客

1、创建租赁接口

public interface Rent {
    public void rent();
}

2、分别由房东和中介共同实现租赁接口

//注:代码中使用了lombok注解,故省去getter setter 方法
import com.duanhw.dao.Rent;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

@Data
@AllArgsConstructor
@NoArgsConstructor
public class LandLord implements Rent {
    private String addr;
    private String size;
    private int hire;
    private String type;


    public void rent() {
        System.out.println("地址:"+this.getAddr());
        System.out.println("租金:"+this.getHire());
        System.out.println("房屋大小: "+this.getSize());
        System.out.println("房屋格局: "+this.getType());
    }
}
package com.duanhw.service;

import com.duanhw.dao.Rent;
import com.duanhw.pojo.LandLord;
import java.util.ArrayList;
import java.util.List;

public class HouseAgency implements Rent {

    /*
    * 中介租房附加服务簇
    * */

    //看房服务
    private void lookHouse(){
        System.out.println("中介带看房屋");
    }

    //签订合同
    private void pack(){
        System.out.println("签订合同");
    }

    //提供房源搜索
    private LandLord houseResource(String addr){
        List<LandLord> lords = getLandLord();
        if(!addr.equals("")){
            for(LandLord ll : lords){
                if(ll.getAddr().contains(addr)){
                    ll.rent();
                    return ll;
                }
            }
        }
        return  null;
    }

    //收取中介费用
    private void cost(int hire){
        Double cost=hire*0.2;//买方中介费
        System.out.println("收取租赁费用共计:"+(Double.valueOf(hire)+cost)+"元");
    }
    //房源
    private List<LandLord> getLandLord(){
        List<LandLord> lords=new ArrayList<LandLord>() ;
        LandLord zhangSan=new LandLord("城关区","100平",2000,"两室两厅");
        LandLord liSi=new LandLord("安宁区","120平",3000,"三室两厅");
        LandLord wangWu=new LandLord("七里河区","90平",4000,"一室一厅");
        LandLord zhaoSi=new LandLord("西固区","150平",5000,"两室一厅");
        lords.add(zhangSan);
        lords.add(liSi);
        lords.add(wangWu);
        lords.add(zhaoSi);
        return lords;
    }

    public void rent() {
        System.out.println("中介的租赁服务");
    }

    public void Realrent(String addr){
        this.rent();
        LandLord landLord = this.houseResource(addr);
        this.lookHouse();
        this.pack();
        this.cost(landLord.getHire());
    }

}

3、租客租房

    @org.junit.Test
    public void RentTest(){
        HouseAgency ha=new HouseAgency();
        ha.Realrent("城关");
    }

 

代码运行结果:

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值