坚持并养成习惯,不为有趣真的好难。越是放弃就越多借口不坚持。
桥接模式
思路:分离抽象部分和实现部分,重在相互独立。
多个维度多个变化,不同版本不同类型响应都不同。它就是做"个性化",适应各种要求做出调整。
好处:灵活、减低耦合、提高扩展性。
场景:插件开发、组件开发
假设我们要开发一个弹窗插件,弹窗有不同的类型:普通消息提醒,错误提醒,每一种提醒的展示方式还都不一样。
首先我们定义两个类:普通消息弹窗和错误消息弹窗。
1 function MessageDialog(animation) { 2 this.animation = animation; 3 } 4 MessageDialog.prototype.show = function () { 5 this.animation.show(); 6 } 7 function ErrorDialog(animation) { 8 this.animation = animation; 9 } 10 ErrorDialog.prototype.show = function () { 11 this.animation.show(); 12 }
1 var MessageDialog=function(animation){this.animation=animation;} 2 MessageDialog.prototype.show=function(){this.animation.show();} 3 4 5 var ErrorDialog=function(animation){this.animation=animation;} 6 ErrorDialog.prototype.show=function(){this.animation.show();} 7 8 9 10 11 var LinerAnimation=function(){}; 12 LinerAnimation.prototype.show=function(){console.log("liner");} 13 14 var EaseAnimation=function(){}; 15 EaseAnimation.prototype.show=function(){console.log("ease");} 16 17 var message=new MessageDialog(new LinerAnimation()); 18 message.show(); 19 20 var error=new ErrorDialog(new EaseAnimation()); 21 error.show();