以房客租房子为例,其中涉及三个角色即:房东、中介、租客
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("城关");
}
代码运行结果: