对Yii2行为(behavior)的理解 跟继承的区别
行为是一种设计模式,继承是编程语言的特性
继承:感觉更像物种的进化,物种的扩展,生成新的物种,这些新的物种又具有不同的特性。
也就是说,我必须生成新的具有某种特性或者功能的物种去实现我想要的。
行为:想要实现某种功能的时候需要借助别的工具,我想用笔记本电脑画画,那我就买一个触控板,接上就可以。
但是前提是我的笔记本要预留跟触控板链接的接口,behavior就相当于这个预留的接口。
区别:从实现方式上讲,继承要实现新的属性功能就必须生成一个新的对象。
而使用行为的方式,
一是不必对现有类进行修改,
二是PHP不支持多继承,但是Yii可以绑定多个行为,从而达到类似多继承的效果。
补充:Yii的行为我认为使用的是装饰模式,动态的给一个对象添加一些额外的职责,就增加功能而言,装饰模式比生成子类更为灵活。
参考文章:大话设计模式和http://www.digpage.com/
关键字:yii2, behavior, 设计模式, 装饰模式
版权声明
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处。如若内容有涉嫌抄袭侵权/违法违规/事实不符,请点击 举报 进行投诉反馈!