设计模式(五)—— 代理模式
2016-08-02 23:19
155 查看
一、定义:
为其他对象提供一种代理以控制对这个对象的访问。在某些情况下,一个对象不适合或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。
二、特点:
真实的角色就是实现实际的业务逻辑,不用关心其他非本职责的事务,通过后期的代理完成一件完成事务,附带的结果就是编程简洁清晰。代理对象可以在客户端和目标对象之间起到中介的作用,这样起到了中介的作用和保护了目标对象的作用。
高扩展性
三、情景:
玩游戏时,有些玩家需要上班,但又想尽快升级,于是就在淘宝上找游戏代理,来帮他升级,根据该情景来设计类。1、游戏接口类(Game)
public interface Game { void login(Player play); void play(); }
2、游戏实现类(GameImpl)
public class GameImpl implements Game{ Player player; public void login(Player play) { this.player = play; System.out.println("欢迎【"+play.getUserName()+"】来到游戏世界"); } public void play() { int level = player.getLevel()+1; System.out.println("恭喜升到【"+level+"】级"); } }
3、玩家类(Player)
private String userName; private String passWord; private Integer level; public Player(){ } public Player(String userName, String passWord) { this.userName = userName; this.passWord = passWord; } public String getUserName() { return userName; } public void setUserName(String userName) { this.userName = userName; } public String getPassWord() { return passWord; } public void setPassWord(String passWord) { this.passWord = passWord; } public Integer getLevel() { return level; } public void setLevel(Integer level) { this.level = level; }
4、代理类(Proxy)
public class Proxy implements Game{ Game game = new GameImpl(); public void startProxy(Player player){ this.login(player); this.play(); } public void login(Player player) { game.login(player); } public void play() { game.play(); } }
5、代理模拟玩家登录测试类
public class ProxyGame { public static void main(String[] args) { Player player = new Player("fonxian","123456"); player.setLevel(0); Proxy proxy = new Proxy(); proxy.startProxy(player); /** * 输出结果 * 欢迎【fonxian】来到游戏世界 恭喜升到【1】级 */ } }
相关文章推荐
- 设计模式----Proxy(代理)模式
- 乐在其中设计模式(C#) - 代理模式(Proxy Pattern)
- 乐在其中设计模式(C#) - 代理模式(Proxy Pattern)
- 设计模式 --- 代理模式(Proxy) 精选经验合集
- 深入浅出基于Java的代理设计模式
- 设计模式之Proxy(代理)
- 设计模式与泡mm的关系之Proxy代理模式及代理模式的再思考
- 设计模式(6)-代理模式(Proxy)
- Java设计模式:Proxy(代理)
- 设计模式之Proxy(代理)
- 深入浅出基于Java的代理设计模式
- 设计模式——代理模式
- 设计模式之代理模式(Proxy)
- C#中利用代理实现观察者设计模式
- 设计模式之Proxy(代理)
- 设计模式之Proxy(代理)
- 设计模式之Proxy(代理)
- 设计模式之Proxy(代理)
- 设计模式之Proxy(代理)
- 设计模式(8)-代理模式(Proxy)