博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
静态代理模式,Thread类
阅读量:3942 次
发布时间:2019-05-24

本文共 1953 字,大约阅读时间需要 6 分钟。

在这里插入图片描述

new WeddingCompany对象时会自动调用构造器,new对象时将接口实现类Me类型的变量作为参数传入该构造方法,该构造方法又将该对象赋值给自身内部的Marry接口类型变量target,使得target变成Me类型的变量,因此可以调用Me类内部重写的HappyMarry方法,输出真实对象Me中的内容,又可以在代理公司自身的HappyMarry方法中添加附加的代码,添加额外的操作在这里插入图片描述
原来我们直接new出Me类自己的对象,调用Me类自己的HappyMarry方法,达到某些代码功能,现在我们通过一个接口2个实现类来静态代理不仅仅可以实现原有代码,还可以增加一些额外的代码来实现其他的功能
在这里插入图片描述
在这里插入图片描述

具体的代码以及注解如下:细节很多,仔细看注释

package duoxiancheng;//静态代理模式总结://真实对象和代理对象都要实现同一个接口//代理对象要代理真实角色//静态代理的好处:代理对象可以做很多真实对象做不了的事情,真实对象可以专注做自己的事情public class StaticProxy {
public static void main(String[] args) {
WeddingCompany weddingCompany = new WeddingCompany(new Me()); weddingCompany.HappyMarry(); //此处执行的是婚庆公司类创建对象中重写的HappyMarry方法,但是HappyMarry方法中 }}interface Marry{
//这是一个结婚接口 void HappyMarry(); //结婚接口中有自己的一个方法,所有实现这个接口的类都要重写这个方法}//真实角色,我去结婚class Me implements Marry{
@Override public void HappyMarry() {
System.out.println("我要结婚了"); }}//代理角色帮我结婚class WeddingCompany implements Marry{
//在结婚公司这个类中定义接口类型的变量target,接收一会传入的真实对象Me private Marry target; //构造方法将传入的接口继承实现类Me类型的变量赋值给上一行本类中自己定义的私有接口类型的变量target public WeddingCompany(Marry target) {
//类中的构造方法,对类中的一些属性进行赋值,这里的参数是Marry接口,但传入的可以是实现接口的类名 this.target = target; } @Override //alt+insert重写方法 public void HappyMarry() {
before(); //重写的HappyMarry方法中再实现一些自己附加的东西 this.target.HappyMarry();//this。target是本类中自己定义的接口类型的变量,通过上面的构造方法将接口Marry的实现类传给了本类中的接口类型变量target // 接口的实现类对象传入了本类中,就可以调用其下的方法了,此处调用的是新建Me类中的自己的HappyMarry方法 after(); //重写的HappyMarry方法中再实现一些自己附加的东西 } private void before() {
System.out.println("收份子钱!"); } private void after() {
System.out.println("洞房花烛!"); }}

Thread类与静态代理的对比区别

Thread类也实现了Runnable接口,WeddingCompany类和Me类实现了Marry接口类

WeddingCompany传入Me类参数,调用的是自身的HappyMarry方法,该方法中包括传入参数Me类中的HappyMarry方法和附加的一些代码,该方法中又调用了传入参数Me类型对象中的HappyMarry方法,达到代理输出并且附加实现其他功能。HappyMarry方法相当于线程中的start方法
在这里插入图片描述

转载地址:http://ewnwi.baihongyu.com/

你可能感兴趣的文章
docker网络
查看>>
锐捷交换机的多对多镜像口
查看>>
Linux系统修改编码
查看>>
word文档不能显示图片的处理
查看>>
linux的多桌面环境Xephyr
查看>>
初探debian桌面的管理启动
查看>>
七层协议图
查看>>
华为交换机作为AC的条件
查看>>
禁用Ubuntu 15.04登录界面显示客人会话(简单-实用)
查看>>
linux X下安装的软件
查看>>
Linux监测某一时刻对外的IP连接情况
查看>>
CentOS7 最小环境安装Jumpserver 1.0版脚本
查看>>
X-Security X的安全控制
查看>>
openVAS的安装
查看>>
Centos 6.5 初始安装无网卡驱动解决方法
查看>>
linux中的网桥bridge
查看>>
linux中的teaming与bonding
查看>>
LVM
查看>>
用shell切分文件--split
查看>>
python中判断字符是否为中文
查看>>