对静态代理模式的理解

帮忙干活,但不会一手包办,只是处理了一些杂碎的东西(不愿意干,或者干不了的事,代理对象)
  注意这里是帮我干活,不会做别的事情
举个例子:
    张三的经纪人:金计
    导演找了张三的经济人让张三去拍电影
    (无论外界想让我干什么,都要先经过我的经纪人,经纪人会在其中考虑收费,是否符合要求等问题)
    在这里,经纪人就是代理,实际要拍电影的还是张三

总结代理模式:当前对象不愿意干的,没法干的东西交托给别的对象来做,我们只要做好本分的东西就行,Spring的AOP的底层就是通过代理模式来实现的



静态代理举个例子:

我现在是个普通程序员,写博客需要获得点击量好在跳槽的时候吹牛逼,但是自己写的话不一定有很多人点击,如果有个大佬(代理)帮忙点赞加收藏的话点击量应该可以飙升不少

以下是代码

首先是目录结构


然后每个模块的代码如下

首先Programer是一个接口,不管是动态代理还是静态代理,都需要定义接口

package cn.lichenyang.dao;

public interface Programer {

	public void coding();
	
}

然后是self.java,实现了Programer类,自己编写代码

package cn.lichenyang.dao.impl;

import cn.lichenyang.dao.Programer;

//自己的目的是为了点击量,但是没办法推广自己,所以让大佬点赞自己的文章
//推广自己,以提高点击量
public class Self implements Programer{

	@Override
	public void coding() {
		System.out.println("自己写代码。。。。。。。。");
	}
}

然后是BigBrather.java类,为代理对象,作用是帮我获取点击量

package cn.lichenyang.dao.impl;

import cn.lichenyang.dao.Programer;

//大佬,扮演的角色是代理,只是为了帮忙
//(先让自己发文章,然后大佬点赞)
public class BigBrother implements Programer{

	//创建一个自己的对象
	private Self self;
	
	//构造函数的作用在main方法中可以new一个BigBrother
	//这里可以指定让别人发文章且点赞,如果是空参的构造方法,就不能指定让谁发文章和点赞
	//只能针对一个人
	public BigBrother(Self self){
		this.self=self;
	}
	
	//大佬点赞加收藏
	public void upvote(){
		System.out.println("大佬点赞加收藏了,可以获得点击量了");
	}
	
	public void addMoney(){
		System.out.println("要开始加钱了");
	}
	
	@Override//大佬的动作是1.让自己写文章,2.点赞收藏
	public void coding() {
		self.coding();//前处理
		upvote();
		//价钱方法
		addMoney();//后处理
	}

}

以下是测试类,测试是否运行成功

package cn.lichenyang.test;

import cn.lichenyang.dao.Programer;
import cn.lichenyang.dao.impl.BigBrother;
import cn.lichenyang.dao.impl.Self;

public class Test {

	public static void main(String[] args) {
		
		//想要点击量的自己
		Self self = new Self();
		
		//多态创建一个大佬对象
		Programer programer = new BigBrother(self);
		
		//大佬执行推广方法
		programer.coding();
	}
}

运行结果如下:


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值