
设计模式
浴盆
这个作者很懒,什么都没留下…
展开
-
Java与js中的多态
Java中的多态我们知道Java是强类型语言,如果将预先定义好的类型进行其他赋值就会报错 String str; str = 'abc'; str = 2; // 报错我们想在让给函数传不同对象时,能执行该对象中的方法。在下面代码中,我们想在给AnimalSound类的makeSound方法传入chicken或者duck对象可以发出叫声 public abstract clas翻译 2017-03-16 22:06:57 · 541 阅读 · 0 评论 -
js策略模式
简介在程序设计中,我们经常遇到类似的情况,要实现某一个功能有多种方案可以选择,比如一个压缩文件的程序,既可以选择zip算法,也可以使用gzip算法。策略模式的定义是:定义一系列的算法,把它们一个一个封装起来,并且使它们可以相互替换。使用策略模式计算奖金需求为绩效S的人4倍奖金,绩效为A的人3倍奖金,绩效为B的人年终奖是2倍工资。 var caculateBonus = function(perfo翻译 2017-04-03 20:31:06 · 1322 阅读 · 0 评论 -
javascript工厂模式
简单工厂单纯使用new会导致两个类之间的依赖性,当有多个类构造时,使用一个方法来实例化哪个具体的类,如下面的Fruit水果商店类,通过一个简单的switch层来判断。 var FruitShop = function(){}; FruitShop.prototype = { showFruit: function(model){ var fruit;原创 2017-02-04 10:46:54 · 403 阅读 · 0 评论 -
js模版方法模式
模版方法模式由两部分结构组成,第一部分是抽象父类,第二部分是具体的实现子类。在模版方法模式中,子类实现中的逻辑相同部分被上移到父类中,而将不同的部分留待子类来实现。适用场景为2个或多个有相似逻辑的对象,详细demo可以参考我github上的template.jscoffee and tea咖啡与茶是一个经典的例子,泡咖啡的步骤如下 var Coffee = function(){}; Co翻译 2017-04-18 21:04:05 · 416 阅读 · 0 评论 -
js观察者模式
发布-订阅模式又叫观察者模式,它定义对象间的一种一对多的依赖关系,当一个对象的状态改变时,所有依赖于它的对象都将得到通知.详细demo可以参考observer.jsDOM事件实际上我们在DOM节点上绑定事件处理函数,就是一种发布-订阅模式 document.body.addEventListener('click', function(){ alert(2); }, fals翻译 2017-04-04 22:41:15 · 721 阅读 · 0 评论 -
js中的命令模式
命令模式是最简单的模式之一,命令模式中的命令command指的是一个执行某些特定事情的指令。命令模式最常见的应用场景是:有时候需要向某些对象发送请求,但是并不知道请求的接受者是谁,此时希望用一种松耦合的方式来设计程序,使得请求发送者和请求接收者能够消除彼此之间的耦合关系。 详细demo请查看command.js菜单程序假设这样一种场景,用户界面上有数十个button按钮,因为项目复杂,我们让A负责翻译 2017-04-18 08:32:26 · 3122 阅读 · 0 评论 -
js单例模式
惰性单例惰性单例指的是在需要的时候才创建对象实例。我们先来看一个例子,假如需求是一个唯一的登录窗口,第一种解决方案是在页面加载完成的时候便创建好这个div浮窗,这个浮窗肯定一开始是隐藏状态的 具体代码可以参考single-case.js var loginLayer = (function(){ var div = document.createElement('div');翻译 2017-04-02 17:26:52 · 928 阅读 · 0 评论