代理设计模式:
首先定义一个接口:用于抽象出一个具体事务的共有方法:作为抽象方法:
打游戏: 登录-----》 杀怪 -----》 升级
public interface IGamePlayer{
public void login(String user,String password){
//登陆游戏
public abstract void login(String user,String password);
// 杀怪
public abstract void killBoss();
//升级
public abstract void update();
}
}
一个具体的子类去实现接口:
public class GamePlayer implements IGamePlayer{
private String name ="";
public void GamePlayer(String name){
this.name = name;
}
public void login(){
System.out.println("用户登录");
}
public void killBoss(){
System.out.println("杀怪");
}
public void update(){
System.out.println("升级");
}
}
找一个代理玩家:
将自己的对象传递给他,作为构造函数初始化,同样继承游戏接口;
public class GamePlayerProxy implements IGanmePlayer{
private IGamePlayer gameplayer=null;
public GamePlayerProxy(IGanmePlayer gameplayer){
this.gameplayer = gameplayer;
}
public void login(){
System.out.println("用户登录");
}
public void killBoss(){
System.out.println("杀怪");
}
public void update(){
System.out.println("升级");
}
}
public class Client {
public static void main(String [] args){
IGamePlayer player new GamePlayer("张三");
IGamePlayer proxy = new GamePlayerProxy("player");
proxy.login("zhangsan","password");
proxy.killbos();
proxy.update()
}
}
代理设计模式的优点:
1. 职责清楚:
真实角色就是实现实际业务逻辑,不用关心其他本职职责的事务,代理去完成其职责事务;
2. 高扩展性:
具体主要角色随时可能变化的,只要他实现了接口
首先定义一个接口:用于抽象出一个具体事务的共有方法:作为抽象方法:
打游戏: 登录-----》 杀怪 -----》 升级
public interface IGamePlayer{
public void login(String user,String password){
//登陆游戏
public abstract void login(String user,String password);
// 杀怪
public abstract void killBoss();
//升级
public abstract void update();
}
}
一个具体的子类去实现接口:
public class GamePlayer implements IGamePlayer{
private String name ="";
public void GamePlayer(String name){
this.name = name;
}
public void login(){
System.out.println("用户登录");
}
public void killBoss(){
System.out.println("杀怪");
}
public void update(){
System.out.println("升级");
}
}
找一个代理玩家:
将自己的对象传递给他,作为构造函数初始化,同样继承游戏接口;
public class GamePlayerProxy implements IGanmePlayer{
private IGamePlayer gameplayer=null;
public GamePlayerProxy(IGanmePlayer gameplayer){
this.gameplayer = gameplayer;
}
public void login(){
System.out.println("用户登录");
}
public void killBoss(){
System.out.println("杀怪");
}
public void update(){
System.out.println("升级");
}
}
public class Client {
public static void main(String [] args){
IGamePlayer player new GamePlayer("张三");
IGamePlayer proxy = new GamePlayerProxy("player");
proxy.login("zhangsan","password");
proxy.killbos();
proxy.update()
}
}
代理设计模式的优点:
1. 职责清楚:
真实角色就是实现实际业务逻辑,不用关心其他本职职责的事务,代理去完成其职责事务;
2. 高扩展性:
具体主要角色随时可能变化的,只要他实现了接口