代理设计模式
来源:互联网 发布:模考软件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. 高扩展性:
具体主要角色随时可能变化的,只要他实现了接口
首先定义一个接口:用于抽象出一个具体事务的共有方法:作为抽象方法:
打游戏: 登录-----》 杀怪 -----》 升级
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
- 设计模式--【代理模式】
- 设计模式:代理模式
- 设计模式--代理模式
- 设计模式---代理模式
- 设计模式-代理模式
- 设计模式---代理模式
- 设计模式 代理模式
- 设计模式-【代理模式】
- 设计模式-代理模式
- 设计模式----代理模式
- 设计模式-代理模式
- 设计模式---代理模式
- 设计模式--代理模式
- 设计模式-代理模式
- 设计模式- 代理模式
- 设计模式---代理模式
- 设计模式 - 代理模式
- 【设计模式】代理模式
- javascript循环timeout延迟执行
- OJ 嘻唰唰:熟悉题型——填空题(删除线性表节点)
- 关于jnative调用dll的一些心得
- Volley简单学习使用二——Request
- Android Screen on/off flow
- 代理设计模式
- C语言获取汉字拼音首字母
- Reading List
- fastjson使用实例
- bash脚本输入密码不回显
- 开灯问题
- 算法学习之循环和递归
- 读设计师要懂心理学笔记5-人如何集中注意力
- oracle11g服务端的安装与使用