代理设计模式

来源:互联网 发布:模考软件pp2 编辑:程序博客网 时间:2024/05/24 04:59
          代理设计模式:
    
    首先定义一个接口:用于抽象出一个具体事务的共有方法:作为抽象方法:
    打游戏: 登录-----》 杀怪 -----》 升级
    
    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. 高扩展性:
            
            具体主要角色随时可能变化的,只要他实现了接口
             
0 0
原创粉丝点击