代理模式用的是相当的多了,现在google没法用了,vpn还是可以连上google的,就是代理!
uml类图:
工程结构:
package Proxy.test.proxyTest;
public class Main {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
MM mm = new MM("苍老师");
Proxy proxy = new Proxy(mm);
proxy.GiveFlowers();
proxy.GiveDolls();
proxy.GiveChocolate();
}
}
package Proxy.test.proxyTest;
public interface GiveGift {
void GiveDolls();
void GiveFlowers();
void GiveChocolate();
}
package Proxy.test.proxyTest;
public class Proxy implements GiveGift{
PurSuit pSuit;
public Proxy(MM mm){
pSuit = new PurSuit(mm);
}
@Override
public void GiveDolls() {
// TODO Auto-generated method stub
pSuit.GiveDolls();
}
@Override
public void GiveFlowers() {
// TODO Auto-generated method stub
pSuit.GiveFlowers();
}
@Override
public void GiveChocolate() {
// TODO Auto-generated method stub
pSuit.GiveChocolate();
}
}
package Proxy.test.proxyTest;
public class PurSuit implements GiveGift {
MM mm;
public PurSuit(MM mm){
this.mm = mm;
}
@Override
public void GiveDolls() {
// TODO Auto-generated method stub
System.out.println("give dolls to "+mm.getName());
}
@Override
public void GiveFlowers() {
// TODO Auto-generated method stub
System.out.println("give flowers to "+mm.getName());
}
@Override
public void GiveChocolate() {
// TODO Auto-generated method stub
System.out.println("give chocolate to "+mm.getName());
}
}
package Proxy.test.proxyTest;
public class MM {
private String name;
public MM(String name){
this.name = name;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
解释不解释。清晰明了。