设计模式
anchor_jsyc
创造自己,创造自己的风格,创造自己的未来!
展开
-
懒羊学习《深入浅出设计模式》C#代码手札之策略模式
花了近两个月的时间把《深入浅出设计模式》走马观花似的翻了一遍,除了把模式的名称记得以外,其它的也就寥寥无几了。为了更好的巩固于是决定第二次翻阅这本书,而这次主要是目的就是通过自己会的东西把里面模式代码拼凑起来。以下所有文字在于记录懒羊学习这本书的一个过程,其中会存在一些词语的用词不当,以及专业性用词的错误,大家如果有所发现还请跟贴提醒,但文章中不会做相应修改,但以后的文章会采用正确的原创 2007-11-26 12:59:00 · 1032 阅读 · 0 评论 -
懒羊学习《深入浅出设计模式》C#代码手札之状态模式与代理模式
状态模式:允许对象在内部状态改变时改变它的行为,对象看起来好像修改了它的类。书中以糖果公司为例进行了讲解,其实这个模式我用得特别多,当然并没有用真正使用模式,就像那种如果怎么样就怎么样,又如果怎么样再怎么样,都可以换成这种模式,而我好像都习惯于如果就如果就。参照了网络引用了网络的例子,以一个人的喜怒疯来进行阐述。人在怒完以后直接转为开心,开心完后又转为疯。当状态可以定为在什么状态下做什么事,这原创 2007-12-17 10:26:00 · 706 阅读 · 0 评论 -
懒羊学习《深入浅出设计模式》C#代码手札之组合模式
组合模式:允许你将对象组合成树形结构来表现“整体/部分”层次结构。给合能让客户以一致的方式处理个别对象以及对象组合。看到树我就想到当年的数据结构,什么叶结点啊、子结点啊搞得头昏脑涨。由于每个结点都可能是某个结点的子结点,也有可能是某个结点的父结点,因此它们的内部结构基本上算是一致了。书中讲的还是那个菜单的玩意,我这里引用了Terry LE博客上面的例子,我觉得好理解点。存在着一批图形,它们都继原创 2007-12-17 10:24:00 · 606 阅读 · 0 评论 -
懒羊学习《深入浅出设计模式》C#代码手札之迭代器模式
迭代器模式提供一种方法顺序访问一个聚合对象中的各个元素,而又不暴露其内部的表示。第一次知道这个名词是在学C的时候,迭[DIE]代就是替代的意思,但有连续不断的意思,说白点就是批量替代(这是我的理解)。书中用了两个实例,而这两个实例中都存在遍历这个方法。但现在是要把这两个合在一起,由于这两个使用的方式不同,一个是ArrayList另一个则是真正意义的数组,因此要把它们两个合在一起的确并非易事,因原创 2007-12-17 10:22:00 · 535 阅读 · 0 评论 -
懒羊学习《深入浅出设计模式》C#代码手札之模板方法模式
模板方法模式:在一个方法中定义一个算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以在不改变算法结构的情况下,重新定义算法中的某些步骤 书中的例子我觉得举得非常的到位,茶和咖啡大致的喝法相似,不同的无非就是一个泡一个冲,而这些相似的部分我们先可以在父类中全部定义好,而把那么不相同的部分空出来,由子类去补充。也就是把饮料冲进杯子这些步聚都是共有的,后来又出现了是原创 2007-12-17 10:19:00 · 687 阅读 · 0 评论 -
懒羊学习《深入浅出设计模式》C#代码手札之命令模式
命令模式:将“请求”封装成对象,以便使用不同的请求,队列或者日志来参数化其他对象。命令模式也支持可撤消的操作。书中讲解这个模式时通过一个可以遥控家里大部分电器的遥控器开始,当原来打开电视机需要去按电视机上的打开按钮,而如今将这个按钮的打开操作独方出来,也就是这个遥控器上的某个按钮,当按下这个按钮就直接打开电视机,而不需再去只接接触电视机。当然这个遥控器连接的是电视机,如果将这个原创 2007-12-09 12:13:00 · 730 阅读 · 0 评论 -
懒羊学习《深入浅出设计模式》C#代码手札之单件模式
单件模式:确保一个类只有一个实例,并提供一个全局访问点。这个模式的定义说得很明白,就是这个类只有一个实例,也就是通过一个“开关”来控制,如果这个类的实例存在,那就不在生成了,当然不存在,那就继续了。关于这个模式网上有许多相关的讲解,有兴趣的可以到TerryLee的博客去看看,可谓讲得很详细,而且写了很多种情况。我比较喜欢看到直观化的东西,因此我在写这个代码的时候相对性去看看显示结原创 2007-12-09 12:10:00 · 644 阅读 · 0 评论 -
懒羊学习《深入浅出设计模式》C#代码手札之工厂模式与抽象工厂
工厂模式:定义了一个创建对象的接口,但由子类决定要实例化的类是哪一个。工厂方法让类把实例化推迟到子类。抽象工厂:提供一个接口,用于创建相关或依赖对象的家族,而不需要明确指定具体类。关于这节我没有用书中的例子,本人英文实在太搓,看着那些词汇脑袋有点嗡嗡,最后我全用了C和E代替了。如定义所说,工厂模式是由子类来决定要实例化的类是哪一个。首先我们先建立一批类(C1、C2、C3……),这些类原创 2007-12-02 12:53:00 · 608 阅读 · 0 评论 -
懒羊学习《深入浅出设计模式》C#代码手札之装饰者模式
装饰者模式:动态的将责任附加到对象上。若要扩展功能,装饰者提供了比继承更有弹性的替代方案。这一节总算好,来点喝的了,好像还能点点早点。但想想那么复杂的思想,味口也没了,好不容易费了大劲,还参照了网络一些高手们的源码,总算自己把源码凑了出来,当然省去了一些相的的类,重点是搞懂及中心类写出来也就行了。刚开始说真的真的没搞懂,等具体的看了所有的代码才知道,原来不管是哪个类,都可以原创 2007-12-02 12:50:00 · 782 阅读 · 0 评论 -
懒羊学习《深入浅出设计模式》C#代码手札之观察者模式
观察者模式:定义了对象之间的一对多的依赖,这样一来,当一个对象改变状态时,它的所有依赖者都会收到通知并自动更新。我还是按照书中所讲的,一个气象站的故事,首先存在一组数据,而这些数据主要包括天气的温度,湿度以及气压。而另外有一些布告栏会调用这些数据。现在有一个问题,就是每天的温度都在变化,如果每天让布告栏都去调用一下(特别是很多的时候)不累死你才怪,所以必须在这些数据发生变化时自动去通知所原创 2007-12-02 12:47:00 · 791 阅读 · 1 评论 -
懒羊学习《深入浅出设计模式》C#代码手札之适配器模式与外观模式
适配器模式书中的那个插座的例子很形象,也很容易让记忆犹新,当然我们手上也有许多这样的例子,如我们电脑上插的USB转接口,就可以算是一个适配器模式。往COM口上插USB接口的玩意那是不可能的事情,但如果你存在一个USB的转接口,一切就变得轻松了,只需这头插在COM口上,另一头插就可以直接插USB设备了。程序中举例了鸭子和火鸡,由于写这两篇时书已经还给书店了,现在很少买书,因为买书没压力原创 2007-12-18 11:20:00 · 759 阅读 · 0 评论