编程模拟房产中介的日常操作。
1、客户在中介公司登记个人信息。
2、客户提供售房或买房信息给中介。
3、中介将信息转发给所有人或感兴趣的人。
4、客户获取信息,看房,签协议……看房、签协议是线下行为,本系统可忽略。
Customer
package Mediator;
//抽象同事类
public abstract class Customer {
protected Mediator mediator;
public void setMediator(Mediator mediator){
this.mediator=mediator;
}
public abstract void receive();
public abstract void send();
}
Buyer
package Mediator;
//具体同事类:买方
public class Buyer extends Customer {
public void receive(){
System.out.println("买方收到售房信息");
}
public void send(){
System.out.println("买方发送买房信息:我要买房...");
mediator.relay(this);
}
}
Seller
package Mediator;
//具体同事类:卖方
public class Seller extends Customer{
@Override
public void receive() {
System.out.println("卖方收到买房信息");
}
@Override
public void send() {
System.out.println("卖方发出售房信息:我要卖房...");
mediator.relay(this);//请中介者转发
}
}
Mediator
package Mediator;
import java.util.ArrayList;
import java.util.List;
//中介者
public class Mediator {
private List<Customer> customers=new ArrayList<Customer>();
public void register(Customer customer){
if(!customers.contains(customer)){
customers.add(customer);
customer.setMediator(this);
}
}
public void relay(Customer c1){
for(Customer ob:customers){
if(!ob.equals(c1)){
((Customer)ob).receive();
}
}
}
}
Main
package Mediator;
public class Main {
public static void main(String[] args){
Mediator md=new Mediator();
Customer buyer,seller;
buyer=new Buyer();
seller=new Seller();
md.register(buyer);
md.register(seller);
buyer.send();
seller.send();
}
}