定义
定义:一个类代表另一个类的功能。
我的个人定义:一个对象代理另外一个对象的相关行为。
UML图
代码实现1
需求: 购房者房者通过中介向房主买房
/**
*售房行为接口
*/
public interface ISellHourse{
/**
预订
*/
void reserve();
/**
看房
*/
void seeHourse();
/**
签合同
*/
void signContract();
}
/**
房屋中介
*/
public class PropertyAgent implements ISellHourse{
private ISellHourse sellHourse;
public PropertyAgent (ISellHourse sellHourse){
this.sellHourse = sellHourse;
}
/**
预订
*/
override void reserve(){
sellHourse.reserve();
}
/**
看房
*/
override void seeHourse(){
sellHourse.seeHourse();
}
/**
签合同
*/
override void signContract(){
sellHourse.signContract();
System.out.println("收取购房款");
System.out.println("收取中介费");
System.out.println("赠送购房礼品");
System.out.println("向房屋出售者支付购房款");
}
}
public class HourseOwner implements ISellHourse{
/**
预订
*/
override void reserve(){
System.out.println("reserve");
}
/**
看房
*/
override void seeHourse(){
System.out.println("seeHourse");
}
/**
签合同
*/
override void signContract(){
System.out.println("signContract");
}
}
public class HomebuyerCleint{
public static void main(String[] args){
ISellHourse sellHourse = new HourseOwner();
ISellHourse proxy = new PropertyAgent(sellHourse);
proxy.reserve();
proxy.seeHourse();
proxy.signContract();
}