代理模式分为静态代理和动态代理,个人认为是有个中间人做事情,就像现实中的人代理商一样,有人生产产品,有人专门代理去卖场品一样的。
简单的说一下水浒中的西门庆的代理人 王婆,王婆是个中间体,负责代理潘金莲和西门庆的任务,好了,接下来撸代码:
1.首先我们定义一个接口
public interface KingWomen { //这种类型的女人能做什么事情呢? public void makeEyesWithMan(); //抛媚眼 public void happyWithMan(); //happy what? You know that! }
2接下来潘金莲是女的啊,她来实现这个接口:
public class PanJinLian implements KingWomen{ @Override public void makeEyesWithMan() { Log.d("KingWomen ===" + PanJinLian.class.getSimpleName(), "来啊,西门哥哥,我寂寞啊"); } @Override public void happyWithMan() { Log.d("KingWomen ===" + PanJinLian.class.getSimpleName(), "来啊,西门哥哥,一起滚床单啊"); } }
3.王婆也是女的啊,但是他是潘金莲的代理人,他也得实现这个接口:并且拥有潘金莲这个对象啊
public class WangPo implements KingWomen { private KingWomen mKingWomen; public WangPo(){ this.mKingWomen = new PanJinLian(); } @Override public void makeEyesWithMan() { this.mKingWomen.makeEyesWithMan(); } @Override public void happyWithMan() { this.mKingWomen.happyWithMan(); } }
4.西门官人是个男的啊,他的去约妹子啊,于是他去找王婆,王婆给他提供妹子啊
public class XiMenQing extends AppCompatActivity { @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); WangPo wangPo = new WangPo(); wangPo.makeEyesWithMan(); wangPo.happyWithMan(); }
于是大家可以表面上发现西门庆找王婆快乐的玩耍,滚床单,实际上他和潘金莲在代理人王婆的掩饰下玩的愉快的一塌糊涂,外人还以为他和王婆玩的愉快呢!!!!