对Yii2行为(behavior)的理解 跟继承的区别

本文对比了继承与行为两种设计模式的区别,解释了在PHP中如何利用Yii框架的行为特性来模拟多继承,使得代码更加灵活。

行为是一种设计模式,继承是编程语言的特性

继承:感觉更像物种的进化,物种的扩展,生成新的物种,这些新的物种又具有不同的特性。

也就是说,我必须生成新的具有某种特性或者功能的物种去实现我想要的。

行为:想要实现某种功能的时候需要借助别的工具,我想用笔记本电脑画画,那我就买一个触控板,接上就可以。

但是前提是我的笔记本要预留跟触控板链接的接口,behavior就相当于这个预留的接口。

区别:从实现方式上讲,继承要实现新的属性功能就必须生成一个新的对象。

而使用行为的方式,
一是不必对现有类进行修改,
二是PHP不支持多继承,但是Yii可以绑定多个行为,从而达到类似多继承的效果。

补充:Yii的行为我认为使用的是装饰模式,动态的给一个对象添加一些额外的职责,就增加功能而言,装饰模式比生成子类更为灵活。

参考文章:大话设计模式和http://www.digpage.com/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值