Mixin模式
Mixin 有助于减少系统中的重复功能及增加函数复用。Mixin通过将功能注入到对象原型中轻松实现功能共享,但这也导致了原型污染和函数起源方面的不确定性。下面看一个简单Minxin模式的例子:
var Hero = (function () {
this.forward = function () {
console.log('前进: 1米');
};
this.backward = function () {
console.log('后退: 1');
};
this.attack = function () {
console.log('普通攻击');
}
return function() {
this.forward = forward;
this.backward = backward;
this.attack = attack;
return this;
}
})();
var DeMarciaPrince = function (name) {
this.name = name;
Hero.call(DeMarciaPrince.prototype);
}var deMarciaPrince = new DeMarciaPrince('嘉文四世');
console.log(deMarciaPrince.name)
deMarciaPrince.forward();
deMarciaPrince.attack();
【Mixin模式】以上通过Hero.call(DeMarciaPrince.prototype),在DeMarciaPrince注入了Hero的所有方法和属性。Hero里的方法是每个英雄最基本的方法,所以当我们创建新英雄的时候就可以通过Mixin方式实现代码复用。我们通过闭包实现Hero,避免每次调用的时候都重新定义相同功能的代码。
推荐阅读
- --木木--|--木木-- 第二课作业#翼丰会(每日一淘6+1实战裂变被动引流# 6+1模式)
- 设计模式-代理模式-Proxy
- 【译】Rails|【译】Rails 5.0正式发布(Action Cable,API模式等)
- java静态代理模式
- VueX(Vuex|VueX(Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式)
- Kotlin基础(10)-代理模式在kotlin中的使用
- 长谈的确是这个时代需要的一种模式
- 《读_Head_First_有感》_“命令模式”
- 洗洗睡了|洗洗睡了 | 休息的时候,千万注意切换你的行为模式
- 设计模式【15】--从审批流中学习责任链模式