设计模式

Ruby中的设计模式

节讲述过的Singleton 、 Proxy 和

2015-08-10 15:41:57

Django---MVC设计模式

 (MVC)模式。 在这个模式中, Model 代表数据存层,View 代表的是系统中选择显示什么和怎么显示的部分,Controller 指的是系统中根据用户输入并视需要访问模型,以决定使用哪个视图的那部分。 V---Django中对应的是模板系统以及视图,也就是显示内容以及怎么显示

2015-07-29 11:33:17

PHP设计模式系列 - 装饰器

什么是装饰器 装饰器模式,对已有对象的部分内容或者功能进行调整,但是不需要修改原始对象结构,可以使用装饰器设 应用场景 设计一个UserInfo类,里面有UserInfo数组,用于存储用户名信息通过addUser来添加用户名getUserList方法将打印出用户名信息现在需要将添加的用户信息变成大写的,我们需要不改变原先的类,并且不

2015-07-21 10:23:55

JavaScript设计模式之一封装

对于熟悉C#和Java的兄弟们,面向对象的三大思想(封装,继承,多态)肯定是了解的,今天我想讲讲如何在Javascript中利用封装这个特性,开讲! 我们会把现实中的一些事物抽象成一个Class并且把事物的属性(名词)作为Class的Property把事物的动作(动词)作为Class的methods。在面向对象的语言中(C#等)都会有一些关键字来修饰类或者

2015-07-17 11:36:47

深入理解JavaScript系列(31):设计模式之代理模式

介绍 代理,顾名思义就是帮助别人做事,GoF对代理模式的定义如下: 代理模式(Proxy),为其他对象提供一种代理以控制对这个对象的访问。 代理模式使得代理对象控制具体对象的引用。代理几乎可以是任何对象:文件,资源,内存中的对象,或者是一些难以复制的东西。 正文 我们来举一个简单的例子,假如dudu要送酸奶小妹玫瑰花,却不知道她的联系方式或者不好意

2015-07-17 11:36:42

新书《JavaScript设计模式 》出版,感谢支持

小记 这本书的出版得益于人民邮电出版社陈冀康编辑的推荐,加上之前博客又翻译了一些原作者的文字,所以就承担了该书的翻译工作,不同于博客的是,由于设计模式本身就难以表达,加上英文版有很多错误(评价不佳),原本年初就可以出版的书,一直等到5月份原作者更新最完善版本以后,前后进行了5次译稿校对,才得以出版,再次感谢作为专业翻译媳妇的帮忙和编辑的耐心。 本书介绍

2015-07-17 11:36:08

深入理解JavaScript系列(26):设计模式之构造函数模式

介绍 构造函数大家都很熟悉了,不过如果你是新手,还是有必要来了解一下什么叫构造函数的。构造函数用于创建特定类型的对象——不仅声明了使用的对象,构造函数还可以接受参数以便第一次创建对象的时候设置对象的成员值。你可以自定义自己的构造函数,然后在里面声明自定义类型对象的属性或方法。 基本用法 在JavaScript里,构造函数通常是认

2015-07-17 11:36:04

深入理解JavaScript系列(32):设计模式之观察者模式

介绍 观察者模式又叫发布订阅模式(Publish/Subscribe),它定义了一种一对多的关系,让多个观察者对象同时监听某一个主题对象,这个主题对象的状态发生变化时就会通知所有的观察者对象,使得它们能够自动更新自己。 使用观察者模式的好处: 支持简单的广播通信,自动通知所有已经订阅过的对象。 页面载入后目标对象很容易与观察者存在一种动态关联,增

2015-07-17 11:35:47

深入理解JavaScript系列(25):设计模式之单例模式

介绍 从本章开始,我们会逐步介绍在JavaScript里使用的各种设计模式实现,在这里我不会过多地介绍模式本身的理论,而只会关注实现。OK,正式开始。 在传统开发工程师眼里,单例就是保证一个类只有一个实例,实现的方法一般是先判断实例存在与否,如果存在直接返回,如果不存在就创建了再返回,这就确保了一个类只有一个实例对象。在JavaScript里,单例作为一

2015-07-17 11:35:44

前端攻略系列(三) - javascript 设计模式(文章很长,请自备瓜子,水果和眼药水)

  一直都在考虑这个月分享大家什么东西最好,原计划是打算写一些HTML5中JS方面的内容或者是AJAX方面的,可是自己由于表达能力,时间,还有个人工作方面的问题,这个还是等下个月再做分享吧^.^。   老规矩,开始正文以前先交代自己写这篇文章的目的和一些注意事项:   1.首先本人一直从事前端开发,所以除了JavaScript其他的语言了解不深,所以文章

2015-07-17 11:35:30

深入理解JavaScript系列(44):设计模式之桥接模式

介绍 桥接模式(Bridge)将抽象部分与它的实现部分分离,使它们都可以独立地变化。 正文 桥接模式最常用在事件监控上,先看一段代码: addEvent(element, \'click\', getBeerById);function getBeerById(e) {var id = this.id;asyncRequest(\'GET\',

2015-07-14 17:40:31

Ruby设计模式系列之模板模式

写过java的同学一定对java中无处不在的设计模式印象深刻。相比较而已ruby在设计模式这一块就显得稍微有些拿不出手了。作为一门动态到极致的语言,设计模式在ruby中的应用可能不太传统,有些许的变种。但万变不离其宗,在这里我们就通过一些ruby代码所描述的例子来理解和学习一些基本的设计模式。 注:本文中所有例子及代码均来自ruby design pa

2015-07-13 11:31:16

Ruby设计模式之策略模式二————更ruby些的策略模式

从上一篇博文我们可以看出,策略模式的策略类实际上就是一组实现特定功能的代码集合。而ruby实际上已经原生提供了操作一组代码集合的对象,Proc类。于是我们可以用更加ruby些的方式来实现我们的Report类和策略模式。具体代码如下:class Report    attr_reader :title

2015-07-13 11:29:35

ruby设计模式之观察者模式2————更加一般化的观察者模式

一般来说,观察者模式的定义应该是这样的:building a clean interface between the source of news that some object has changed and the consumers of that news。 观察者模式在消息的生产者和消费者之间建立了clean interface,这样就使得消息

2015-07-13 11:24:27

ruby设计模式之【观察者】模式2————更加一般化的观察者模式

一般来说,观察者模式的定义应该是这样的:building a clean interface between the source of news that some object has changed and the consumers of that news。 观察者模式在消息的生产者和消费者之间建立了clean interface,这样就使得消息

2015-07-13 11:22:03

ruby设计模式之【观察者】模式1————简单的观察者模式

观察者模式应该是最容易理解的设计模式了。 考虑这个例子。作为雇员的你当工资发生改变的时候你会想到什么? 请朋友吃饭?给女朋友买衣服?给自己买台Iphone4? 很可惜,你所增加的那点可怜的工资恐怕难以支持你做以上这些事情吧。 当你工资增加之后,你的个人所得税理所当然的增加了;你的住房公积金提高了;你的社保不出意外也要多交了。剩下来的那点应该也不够塞牙

2015-07-13 11:21:42

ruby设计模式之合成模式1————基本的合成模式

前几天在《戏说设计模式》这篇文章中看到了一段关于组合模式的描述: COMPOSITE—Mary今天过生日。“我过生日,你要送我一件礼物。”“嗯,好吧,去商店,你自己挑。”“这件T恤挺漂亮,买,这条裙子好看,买,这个包也不错,买。”“喂,买了三件了呀,我只答应

2015-07-13 11:21:42

Go语言设计模式实践:组合(Composite)

关于本系列 这个系列首先是关于Go语言实践的。在项目中实际使用Go语言也有段时间了,一个体会就是不论是官方文档、图书还是网络资料,关于Go语言惯用法(idiom)的介绍都比较少,基本只能靠看标准库源代码自己琢磨,所以我特别想在这方面有一些收集和总结。 然后这个系列也是关于设计模式的。虽然Go语言不是一门面向对象编程语言,但是很多面向对象设计模式所要解决的问题

2015-07-10 14:55:40

Go语言设计模式实践:迭代器(Iterator)

关于本系列 决定开个新坑。 这个系列首先是关于Go语言实践的。在项目中实际使用Go语言也有段时间了,一个体会就是不论是官方文档、图书还是网络资料,关于Go语言惯用法(idiom)的介绍都比较少,基本只能靠看标准库源代码自己琢磨,所以我特别想在这方面有一些收集和总结。 然后这个系列也是关于设计模式的。虽然Go语言不是一门面向对象编程语言,但是很多面向对象设计模

2015-07-10 14:55:26

什么时候使用PHP设计模式和为什么要使用?

有大量的文章解释什么是设计模式,如何实现设计模式,网络上不需要再写一篇这样的文章。相反,在本文中我们更多的讨论什么时候用和为什么要用,而不是用哪一个和如何使用。 我将会为这些设计模式描绘不同的场景和案例,和提供一个简短的定义帮助你们中对这些指定的模式不熟悉的人。让我们开始吧。 这篇文章覆盖了Robert C. Martin书中提到的一些敏捷设

2015-07-10 14:22:54