Android-静态代理模式

前言:

说到代理,不得不提一下装饰模式. 这两个模式.非常类似.

写起来几乎一样 代理类和委托类实现同一个接口. 然后实现接口.

不同的地方:

行为上有所不同.

1.装饰模式是为了扩展.而不是代理.也就是说用了装饰模式. 必然要有新的扩展.不然就不算装饰模式.

2.代理模式,不会去对原有接口做扩展.也就是不会为了代理的对象而去添加方法. 纯粹的只是代理而已.

interface Love {
    fun love(): String
}

/**
 * 男人
 */
class Man {
    fun test() {
        val matchmaker = Matchmaker()
        val love = matchmaker.love()
        print(love)
    }
}

/**
 * 媒婆
 */
class Matchmaker : Love {
    private val woman = Woman()
    override fun love(): String {
        return woman.love()
    }
}

/**
 * 女人
 */
class Woman : Love {
    override fun love() = "高富帅才行";
}
复制代码

还是kotlin写的舒服.哈哈 以上就是简单的代理了.

代理对象的所有方法,都是为了代理,而不是为了扩展.

代理在现实生活中,很常见. 比如,租房,vpn加速器.点外卖.等等等.

总结:

1.用装饰者,一般是为了扩展功能. 也就是装饰类会添加新的方法.来实现不改变接口扩展的逻辑.

2.代理类,代理只是为了隔离调用者与被调用者,避免直接通信.

比如用加速器.你肯定网络不好才用加速器,网络好还用加速器干嘛.是不是.


套用上一篇文章的例子.

男人+敲代码=>男人变成码农敲代码 男人+代理+码农>男人找人敲代码

也就是用代理.男人不会变成敲代码的. 但是用装饰,男人就变成了男码农. 找这两个男人都能弄出代码.但是过程就不一样了

好像说的更绕了,哈哈.

一句话:装饰是为添加功能.代理是为了控制访问.


交流群:493180098,这是个很少吹水,交流学习的群.

转载于:https://juejin.im/post/5cdb7057f265da03b36f0ab2

1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 、下4载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 、下4载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合;、 4下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值