
设计模式
文章平均质量分 64
OnlyQi
我是一只蜗牛
展开
-
每天一个设计模式之Decorator
http://www.oodesign.com/decorator-pattern.html 前面一天是composite,所以今天就看decorator了。 下面这句话总结的很好:想要扩展一个对象的功能,可以通过继承的方式静态(编译时)实现。然而有时必须在运行时动态的扩展一个对象的功能。 再提咖啡店的例子:咖啡店出售咖啡,或加了各种糖或调料的咖啡。我们需要在运行的时候原创 2011-06-06 17:19:00 · 669 阅读 · 0 评论 -
每天一个设计模式之Adapter
今天来看一个久闻大名,如雷贯耳,其实没啥~~ 的设计模式:adapter~~ Motivation 想想现实世界中例子。我们每个人在使用数码相机时都会用到的东西,SD卡。当我们想把SD卡中的照片存入电脑时会怎么样呢? 现在好多笔记本都有SD卡接口,直接插进去就可以用了。 不过如果没有呢?我的本本就没有~~~(本本是爷给买的thinkpad,嘿嘿) 当然是使用读卡器了。将SD原创 2011-05-01 11:39:00 · 1323 阅读 · 0 评论 -
每天一个设计模式之Factory
属于Creational Design Patterns。用于创建concrete class。 Intent creates objects without exposing the instantiation logic to the client. 这点是使用工厂模式的主要目的。当client需要一个类的实例时,它并不需要自己去实例化那个类,而是交给工厂去实例化。这样client原创 2011-04-23 16:35:00 · 1374 阅读 · 1 评论 -
每天一个设计模式之Singleton
Link: http://www.oodesign.com/ Singleton 属于Creational Design Patterns 顾名思义,就是只能有一个实例的类。这是最容易理解的一个设计模式。 Usually singletons are used for centralized management of internal or external resources原创 2011-04-23 16:34:00 · 1018 阅读 · 1 评论 -
每天一个设计模式之Template Method
http://www.oodesign.com/template-method-pattern.html A template method defines an algorithm in a base class using abstract operations that subclasses override to provide concrete behavior. 例如做披萨的原创 2011-04-23 16:30:00 · 931 阅读 · 0 评论 -
继承,多态和封装
继承 That’s when one class inherits behavior from another class, and can then change that behavior if needed. Inheritance lets you build classes based on other classes, and avoid duplicating and rep转载 2012-05-19 08:07:31 · 877 阅读 · 0 评论 -
Data Access Object
http://en.wikipedia.org/wiki/Data_access_object 摘抄几句我觉得说的很好的话: 1,Although this design pattern is equally applicable to most programming languages, most types of software with persistence needs, an转载 2012-10-12 15:22:35 · 1024 阅读 · 0 评论 -
每天一个设计模式之strategy
上次讲到了template以及template和strategy的异同,所以今天我就看看strategy。 趁热打铁嘛~ 回顾一下: template和strategy pattern的共同之处就是,都是将代码中的算法/variant 的部分独立出来。 不同之处是 The strategy pattern is with Template Method pattern. The d原创 2011-04-26 11:32:00 · 1015 阅读 · 0 评论 -
每天一个设计模式之Proxy
这篇文章写的挺好的,我觉得我没必要再写了: http://www.cnblogs.com/kid-li/archive/2006/10/18/532192.html 在程序中使用AWS API其实就是一种proxy:对于程序本身来说,使用的都是本地的API,而由API将操作转换为http请求,从而实现程序和远程的AWS服务间的交互。 看完这个模式之后可以发现proxy模式和adapter模式...原创 2012-09-09 07:49:37 · 815 阅读 · 0 评论 -
每天一个设计模式之command
想象一下,如果想在dos中列出当前目录下的所有文件,我们会输入dir并回车。为了达到这个目的,我们必须知道“dir”这个命令,以及一些dir常用的参数。 因此我们(client)就和命令的执行者耦合在一起了。 command模式其实和其他的常见模式一样,在client和对象间,加入一个中间层,从而达到解耦合的目的。command模式的另外一个作用是可以记录执行的command的历史,从转载 2012-09-09 17:53:38 · 943 阅读 · 0 评论 -
每天一个设计模式之composite
这篇文章是参考的wiki: http://en.wikipedia.org/wiki/Composite_pattern 首先来看一个例子: 一个绘图软件,可以画出椭圆形,也可以画一个包含多种图形的组合图形(椭圆形,三角形,正方形等等)。 有一个Graphic接口,椭圆形,正方形,三角形都实现了这个接口。 从下面的代码我们可以看出composite的意义:对于客户程序来说,打转载 2012-09-09 16:35:09 · 744 阅读 · 0 评论 -
每天一个设计模式之Observer
原文:http://en.wikipedia.org/wiki/Observer_pattern an object, called the subject, maintains a list of its dependents, called observers, and notifies them automatically of any state changes, usually转载 2012-09-08 23:35:10 · 714 阅读 · 0 评论 -
三道关于面向对象设计的面试题
题一 Imagine you have a call center with three levels of employees: fresher, technical lead (TL), product manager (PM). There can be multiple employees, but only one TL or PM. An incoming telephone ca转载 2012-09-01 20:07:04 · 5779 阅读 · 0 评论 -
设计模式patterns
其实开始接触pattern已经有一段时间了,看的是head first,断断续续的,感觉理解不是很深。一个是因为刚开始接触java,对语言还不熟悉呢,所以对模式的精妙没有切身的体会。一个是不用两天就忘了,就留了点朦朦胧胧的印象。 于是guru告诉我,对于我这种人应该换一种学习方式。他推荐给我两个网站: http://www.oodesign.com/ http://www.javaworld原创 2011-04-26 17:14:00 · 611 阅读 · 0 评论 -
面向对象设计的原则
这些原则都是由Robert C.Martin提出来的。建议大家去看他的Agile Software Development There are five principles of class design (aka SOLID): (SRP) The SingleResponsibilityPrinciple 单一职责原则 就一个类而言,应该仅有一个引起它变化的原因。转载 2012-09-01 20:49:09 · 949 阅读 · 0 评论