“一句话+一个例子“理解Java中的代理原理

xiaoxiao2021-02-28  92

总结

代理是继承与组合之间的中庸之道,我们使用代理时可以拥有更多的控制力,因此我们可以选择只提供成员对象中的方法的某个子集,而不是像继承和组合那样暴露全部方法。Java并没有对代理提供直接支持,但是在众多的Java框架(如Spring等)中,代理是核心思想之一。

例子

//定义一个宇宙飞船控制器 public class SpaceShipControls{ void up(int velocity){} void down(int velocity){} } //建造宇宙飞船需要一个飞船控制器 //采用继承,暴露了基类所有的方法 public class SpaceShip extends SpaceShipControls{ String name; SpaceShip(String name){this.name=name;} public static void main(String[] args){ SpaceShip ship=new SpaceShip("StarShip"); ship.up(100); } } //采用代理,可控地暴露部分方法 public class SpaceShipDelegation{ private String name; private SpaceShipControls controls=new SpaceShipControls(); SpaceShipDelegation(String name){this.name=name;} //代理方法 public void up(int velocity){ controls.up(velocity); } }
转载请注明原文地址: https://www.6miu.com/read-80843.html

最新回复(0)