摘要: 已经好久没有写博客了,不是因为没有学东西,而是因为学的东西不够系统,不够具体,没有整理起来(外加人懒),所以不想浪费笔墨。所以一直潜水。。但总会有感想的,在学习的过程中,时常会遇到一些令人惊喜的东西,令人拍案叫绝的东西,但学会之后觉得简单或者不值一提,于是没有当机立断写出一些洞见。事后用的时候倒觉得理所当然了。其实这是要不得的,学习的过程我认为不应该是纯粹的吸收,而是要有选择的过滤,留其精华,去其糟粕,如果能加入自己的总结就更好了,只可惜我在很多时候忘记了这事儿,或者在很多时候没有空下来专门做一次如此认真的总结。但在技术上的层面来说,任何一种技术都是基于某种设计思想,而至于用什么来具体实现并不是最重要的。思想和设计不能用简单的一对一和一对多关系来说明。经常会有人说一种思想可以衍生多种技术,其实他只说对了一半,因为一种技术并不只是一种思想的实现,而是多种思想的交融。 阅读全文
posted @ 2012-09-05 19:34 everdom 阅读(7141) 评论(26) 推荐(22) 编辑
摘要: 我觉得观察者模式是非常棒的模式,关于它的应用可谓非常之多啊,本着学习的态度,我用js进行了一次实践,做的一个观察者模式构建的网页动画,最后的效果是,点击按钮就会使得三个方块做各自的动画 阅读全文
posted @ 2012-08-09 20:09 everdom 阅读(1410) 评论(0) 推荐(1) 编辑
摘要: 今天讲外观模式,这个模式其实理解起来超级简单,为什么呢?这个模式其实我觉得可以用四个字来形容它:化繁为简。因为这个模式就是用来提供简化接口的。什么是简化接口?其实就是将很多复杂的接口组合起来成为一个新接口。你或许会问,把许多复杂的接口组合起来不是会更复杂吗,怎么会变得简单,这不是自相矛盾吗?哈哈,那你就错了,其实外观模式更像一个东西:宏。又拿宏说事儿了,不是上次命令模式里面提到过“命令宏”的吗,这个模式和宏有什么关系呢?嘿嘿,如果把上次“命令宏”称为“狭义的宏”的话,那么外观模式就是“广义的宏”(似乎越来越难理解了……)。 阅读全文
posted @ 2012-08-03 09:08 everdom 阅读(1504) 评论(3) 推荐(3) 编辑
摘要: 今天要说适配器模式了,适配器模式其实非常好理解,因为现实中存在很多不同种类的适配器,像usb转串口线就是讲usb接口和串口进行转换,VGA转HDMI线就是讲VGA接口和HDMI接口进行转换,这些都是硬件层次的,那么软件层次的就更好举例了,比如现在有某些usb设备,像usb无线键盘/鼠标啊,usb网卡等等如果直接插到电脑上是不会工作的,必须在电脑端还要装上相应的驱动程序,那么这个驱动程序其实就是一个软件适配器,将usb设备转换成为操作系统能够识别的设备,其实,usb设备远不止这些,到淘宝一查,我来个去,真是什么都有啊: 阅读全文
posted @ 2012-07-31 19:52 everdom 阅读(464) 评论(0) 推荐(2) 编辑
摘要: 今天学习了命令模式,这个模式非常的给力,它能将命令封装起来让另外的执行者去执行,相当于一个命令的收集和转发过程,而且,这个模式还能将一系列的命令组合成“命令宏”,并且可以轻松的完成撤销的操作,非常适合日志系统或事务处理系统,也常用于窗口编程中的菜单命令处理,好了,下面回顾一下这个模式吧 阅读全文
posted @ 2012-07-31 11:43 everdom 阅读(327) 评论(1) 推荐(2) 编辑
摘要: 终于到了工厂模式了,说起工厂模式,不得不把工厂方法模式和抽象工厂模式结合起来说,这两种模式都有工厂,乍听起来还真容易混淆,但它们却是不相同的两种模式,但又互相有联系。那么这两者之间各有什么用途,互相之间又有什么联系呢?一个一个来吧。 既然说起了工厂模式,那么首先有一点是需要搞清的,那就是,所有的工厂模式都是为了将对象的创建过程封装起来,要么 将创建过程隔离出来 ,要么 将创建过程抽象成接口。 阅读全文
posted @ 2012-07-27 11:36 everdom 阅读(598) 评论(0) 推荐(3) 编辑
摘要: 装饰者模式就好比一个个wrapper(包装器),将一个对象一层层的包装,然后返回包装后的对象,就好比你在网上购买了一个电饭锅,那么这个电饭锅就是最原始的对象,而商家可能会在发货时进行一个初步包装,首先将电饭锅用一层泡沫包起来,然后装入一个纸箱,接着交给快递公司,然后快递公司收到这个物品后,还要进行二次包装,即使用快递公司专门的盒子装起来(或者用麻袋装好),然后贴上胶布开始运输,客户收到的这个箱子自后,一层层解开包装,最后拿出电饭锅。那么所有包装这个电饭锅的东西,像泡沫啊,纸箱啊,盒子啊,胶布啊,都可以算作装饰者,装饰者将原来的对象装饰完之后,会生成一个装饰后的对象,使源对象加上各种装饰品。所以,既然装饰者依赖于被装饰的对象,那么,装饰者在实现时就理所当然需要一个被装饰的对象的引用了,然后装饰完之后该引用就会指向装饰后的对象了。 阅读全文
posted @ 2012-07-25 09:27 everdom 阅读(236) 评论(0) 推荐(1) 编辑
摘要: 观察者模式首先定义了一个被观察者,然后让很多的观察者订阅被观察者,而被观察者在自己的状态有了更新时向所有的观察者“推送”自己的状态信息,从而使所有的观察者都得到通知。其实这个模式让人很容易想到当前一种最为潮流的互联网应用:微博。就拿微博为例,每一个人都可以是观察者与被观察者两种身份,当你关注别人的时候,比如你的一个朋友小罗,你就成为了小罗的粉丝,就相当于此时小罗为被观察者,而你自己是观察者身份,你订阅了被观察者,使被观察者在自己状态发生改变时会及时通知你。比如小罗今天去旅游,他将照片发到了微博上,这样你就能及时的看到他的动态了。而且不只是你,他所有的粉丝都能看到他的动态了。而当你的另外一个朋友,比如小杨关注了你,这样你就成为了被观察者,而小杨就是观察者,当你在微博上的个人中心上发状态时,小杨就能实时看到你的状态了,或者会对你的状态进行评论。所以,Observer模式很容易理解。 阅读全文
posted @ 2012-07-25 09:22 everdom 阅读(258) 评论(0) 推荐(0) 编辑