随笔分类 -  一句话设计模式

摘要:我已经写过一个方法了,另一个地方要调用这个方法,除了传参不同,没别的区别了,这样的话,我们就不用再实现一次这样的方法了。通常,我们写了一个基类,然后他的子类中,要重写这个方法。但是重写的部分也会用其原来的方法的内容。所以我们通常这么写。var child = new parent();child.prototype.override(){ parent.prototype.override.apply(this,argument); this.otherControl();}js中的访问者实现很简单,谁叫它是个弱类型呢。如果是c++这样的语言,那么值类型或者对象的类型转换中要做的事就太多了.. 阅读全文
posted @ 2013-01-15 19:43 Bug罗 阅读(254) 评论(0) 推荐(0) 编辑
摘要:外观模式再简单不过了。var stopEvent = function( e ){ //同时阻止事件默认行为和冒泡e.stopPropagation();e.preventDefault();}jQuery源码中也有: first: function() { return this.eq( 0 ); }, last: function() { return this.eq( -1 ); }只不过把取某一个jQuery对象,换了个外观而已。 阅读全文
posted @ 2013-01-15 19:26 Bug罗 阅读(199) 评论(0) 推荐(0) 编辑
摘要:假如你手机充电器的插头坏了,但是线还是好的,你会怎么办?对,把线插在电脑的usb插口上面。那么适配器模式是什么。?如果你觉得$("#")不够cool.那么function $id(id){ return $("#"+id);}$id("bugluo");能不能满足你呢?jQuery源码中,将$的使用权让给别的类库之后。jQuery.noConflict();我们只有使用jQuery("#"+id)去获取对象了。这显然很不爽。照着我上面的处理方法,取一个你最喜欢的命名吧。 阅读全文
posted @ 2012-12-19 19:28 Bug罗 阅读(285) 评论(0) 推荐(0) 编辑
摘要:观察者模式可以干什么?当 div绑定onclick时候就会触发事件,当div没有绑定时候就不会触发。div.onclick = function click (){ alert ( ''click' )}所以dom与js之间就存在这样一个观察者模式。、function click(event,c){ alert(event+c);}var CopyrightLabel = new radf.Label({id:"CopyrightLabel",parent:BgPannel,width:470,height:22,vAlign:3,hAlign:3, 阅读全文
posted @ 2012-12-19 19:14 Bug罗 阅读(1313) 评论(0) 推荐(0) 编辑
摘要:这个前言是在百度一个叫Darren_聂微东那里看到的,知道设计模式,但最重要的是,这些设计模式有什么用。 前言: JavaScript设计模式的作用 - 提高代码的重用性,可读性,使代码更容易的维护和扩展。 1.单体模式,工厂模式,桥梁模式个人认为这个一个优秀前端必须掌握的模式,对抽象编程和接口编程都非常有好处。 2.装饰者模式和组合模式有很多相似的地方,它们都与所包装的对象实现同样的接口并且会把任何方法的调用传递给这些对象。装饰者模式和组合模式是本人描述的较吃力的两个模式,我个人其实也没用过,所以查了很多相关资料和文档,请大家海涵。 3.门面模式是个非常有意思的模式,几乎所有的J... 阅读全文
posted @ 2012-12-03 14:21 Bug罗 阅读(245) 评论(0) 推荐(0) 编辑
摘要:简单工厂模式是由一个方法来决定到底要创建哪个类的实例, 而这些实例经常都拥有相同的接口.这种模式主要用在所实例化的类型在编译期并不能确定, 而是在执行期决定的情况。比如ajax会有jsonp、get、post等方式的调用方法。var request1 = Request('cgi.xx.com/xxx' , ''get' );var request1 = Request('cgi.xx.com/xxx' , ''post' );以下代码为模拟js构造函数function ObjectFactory(){var ob 阅读全文
posted @ 2012-11-20 20:06 Bug罗 阅读(200) 评论(0) 推荐(0) 编辑
摘要:通常我们会有这样的需求,制作一个模态窗口,我们用一个与body一样大的div来覆盖整个页面,当作一个荫罩层,那么此div应该是全局的而且唯一的。利用js闭包的特性,写出以下代码。var createMask = function(){ var mask; return function(){ return mask || ( mask = document.body.appendChild( document.createElement('div') ) ) }}()那么我们现在拥有一个createMask()方法用于创建全局的div。包内有一个mask变量,用于在全局作用域保 阅读全文
posted @ 2012-11-20 12:44 Bug罗 阅读(250) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示