代理模式是设计模式中一种比较重要的设计模式,常用于一种类不能或者不必要去进行与其他类进行交互.这样可以构建一个代理类,所有的工作都交给代理类去做.
比如,一个男学生喜欢一个女学生,他想去给那个女孩送礼物,但是他不敢亲自去就上某宝订了一束鲜花,然后让花店的服务员送给那个女孩.那么这个服务员就是代理类.那么在代码中应该是怎么样的呢?
送花的动作接口
public Interface IGiveGift {
void SendFlowers();
}
男同学
public class StudentBoy Interface IGiveGift {
public StudentGirl StudentGirl;
public StudentBoy (StudentGirl StudentGirl) {
this.StudentGirl = StudentGirl;
}
public void SendFlowers {
System.out.println(StudentGirl.name"send flowers");
}
}
一脸懵懂的女同学
public class StudentGirl {
public String Name;
public void setName(String name) {
this.Name = name;
}
public String getName {
return Name;
}
}
花店服务员(代理类)
public class Poxy Interface IGiveGift {
public StudentBoy studentBoy;
public Poxy (StudentGirl studentGirl) {
studentBoy = new StudentBoy (studentGirl);
}
public void SendFlowers() {
studentBoy.SendFlowers();
}
}
main方法
public class ActitySendFlowers {
public static void main (String args[]) {
StudentGirl studentGirl = new StudentGirl();
studentGirl.setName("Girl");
Poxy poxy = new Poxy(studentGirl);
poxy.SendFlowers();
}
}
其中男同学并没有亲自去new一个女同学的类,是通过代理类进行完成操作的,在编程的世界里代理模式会给我们省好多的事情,但是现实生活中还是要靠自己不然就会冒出来好多的小三.
网友评论