随笔分类 -  设计模式

控制反转和依赖注入
摘要:网络上,这些概念看上去很复杂,并且众说纷纭。我读了其中几篇文章,按照自己的理解总结一下。凡学习,必须有笔记输出,否则等于从来没有学过。其实,控制反转(IoC)、依赖注入(DI)和设计模式中的依赖倒置是一脉相承的:都是面向接口编程的一种表述。一、依赖倒置原则:A.高层次的模块不应该依赖于低层次的模块,... 阅读全文

posted @ 2014-12-16 16:27 左直拳 阅读(187) 评论(0) 推荐(0)

依赖、聚合及继承
摘要:在UML的类图中,常常涉及到 依赖、聚合、继承 这几个概念,总是搞不清,记不住,许多文章的解释也是似是而非,不解释还好,越解释越糊涂,比如说什么雁群与大雁的关系,就是什么强聚合、弱聚合的关系,似乎有点误导了。因为近来在学习JAVA,从JAVA的书上看到了一些解说,觉得很好用:依赖:uses a,使用... 阅读全文

posted @ 2014-10-11 17:42 左直拳 阅读(191) 评论(0) 推荐(0)

设计模式学习笔记——迭代器模式
摘要:迭代器模式据说有人要将它从设计模式中剔除,原因是各种语言基本都内置了这种模式,比如c#的foreach语句,实在是太平常了,不值得特别一提。但我对这个迭代器,尤其是.NET的IEnumerable、IEnumerator甚感迷惑,有必要总结一下。迭代器模式,主要由两部分组成:聚集器和迭代器。聚集器代... 阅读全文

posted @ 2014-02-12 22:32 左直拳 阅读(120) 评论(0) 推荐(0)

设计模式学习笔记——策略模式
摘要:我觉得策略模式与工厂方法模式极其相似!策略模式:工厂方法模式:如果单从图来看,看不出有何相似之处。但看看调用方法就知道了:策略模式: Context context = new Context(); AbstractStrategy strategy; //采用哪种策略,由调用方决... 阅读全文

posted @ 2014-02-11 21:31 左直拳 阅读(177) 评论(0) 推荐(0)

设计模式学习笔记——访问者模式
摘要:访问者模式分为两部分:访问者和元素(被访问者)。访问者模式适合元素比较恒定的情况,而访问者则可以很灵活地增减变动,很好地符合开闭原则。一个可以帮助理解的例子是,医院里计价的人和药房里的人可以看成是访问者,而元素则是药单。同一张药单,计价工作人员和药房工作人员的工作内容是不一样的。这个模式有个很奇特的... 阅读全文

posted @ 2014-01-29 21:03 左直拳 阅读(130) 评论(0) 推荐(0)

设计模式学习笔记——备忘录模式
摘要:备忘录模式的应用场景,可以想一下游戏存档。备忘录模式主要由三部分组成:原发器(Originator)、备忘录(memento)、Caretaker(负责人)。其中:原发器:相当于游戏,可以创建备忘录,使用备忘录;备忘录:相当于存档负责人:存储备忘录。只负责存储,但不能操作备忘录。通常用数组存储一系列... 阅读全文

posted @ 2014-01-15 22:20 左直拳 阅读(126) 评论(0) 推荐(0)

设计模式学习笔记——享元模式
摘要:享元模式英文叫Flyweight Pattern。Flyweight,应该是一个来自于拳击术语,最轻量级,也叫蝇量级。次奥,我看《大话设计模式》这本书的时候,一直错看成 亨元模式,搞不懂为什么叫这个名字。现在看清楚了,是享元,共享的享,就比较好理解了。享元模式,就是共享、重用一些现成的对象,免得构造... 阅读全文

posted @ 2014-01-05 18:36 左直拳 阅读(183) 评论(0) 推荐(0)

设计模式学习笔记——命令模式
摘要:请求发送者与请求接收者之间,隔着一个命令,这就是命令模式。为什么要在中间搞一个命令对象作为中介?请求发送者直接调用接收者不行吗?如果为方便替换,符合开闭原则,可以针对接口编程,弄一个请求接收者接口,具体的接收者实现这个接口就可以了。究其原因,我猜是这样,先有请求发送者与请求接收者,现在需要将二者联系... 阅读全文

posted @ 2014-01-05 10:49 左直拳 阅读(77) 评论(0) 推荐(0)

《设计模式》学习笔记——外观模式
摘要:外观模式的作用,是对外提供一个统一的接口。如图所示:看了图,一切尽在不言中。为外部提供一个合适的接口,令人想起适配器模式。适配器模式和外观模式都是为方便统一调用而增加一个接口类,适配器是针对某一个奇形怪状的类,可能多个类就有多个适配器;而外观模式是为调用众多的类提供一个公共接口。 阅读全文

posted @ 2013-12-29 17:45 左直拳 阅读(127) 评论(0) 推荐(0)

设计模式学习笔记——组合模式
摘要:组合模式不难理解,其实就是树结构,分叶子节点和树节点。组合模式,叫复合模式可能更准确些。但是,组合模式有什么好处呢?用在什么场合呢?难道就是为了减少一些条件判断吗? 阅读全文

posted @ 2013-12-22 18:53 左直拳 阅读(129) 评论(0) 推荐(0)

《设计模式》学习笔记——桥接模式
摘要:桥接模式的定义是将抽象部分与实现部分分离,使它们都可以独立地变化。这是什么意思?抽象与实现不是本来就分离的吗?比如父类是抽象类,子类是具体实现类。其实在桥接模式里,主要是用于处理2个或以上维度会变化的情况。比如画笔有大、中、小三种,然后可以蘸上各种颜色进行画画,那么存在两个维度:画笔大小,颜色。用桥... 阅读全文

posted @ 2013-12-21 22:15 左直拳 阅读(161) 评论(0) 推荐(0)

设计模式学习笔记——适配器模式
摘要:适配器模式比较容易理解。但还有一些适配器模式的变种:1、默认适配器模式接口里面的方法很多,如果只需实现其中一些的话,可以设置一个抽象类,继承该接口,将不必要的方法实现为空方法,而具体类继承抽象类,实现必要的方法。2、双向适配器适配器同时包含对目标类和适配者类的引用,那么目标类固然可以通过它来调用适配... 阅读全文

posted @ 2013-12-15 18:03 左直拳 阅读(111) 评论(0) 推荐(0)

设计模式学习笔记——建造者模式
摘要:建造者模式怪就怪在有一个导演类(Director)。本来,建造什么东西,应该放在建造类(Builder),由它来封装建造过程。但建造者模式里面,偏偏将这个建造过程,放在导演类。建造者只提供建造基本东西的方法,由导演类来按需调用,任意组合。如果一个建造者的建造方法,随意组合,就能够千变万化,得到各种不... 阅读全文

posted @ 2013-12-12 07:47 左直拳 阅读(121) 评论(0) 推荐(0)

设计模式学习笔记——工厂
摘要:简单工厂、工厂方法、抽象工厂。所谓的工厂,就是生产东西的。在设计模式这里,工厂就是返回对象的。所以工厂方法、抽象工厂都是创建型的设计模式(简单工厂不算在23种设计模式里面)。简单工厂、工厂方法、抽象工厂,一个比一个复杂,但又互有关联,比如工厂方法可以退化成简单工厂,工厂方法可看成特殊的抽象工厂。1、... 阅读全文

posted @ 2013-12-08 23:17 左直拳 阅读(113) 评论(0) 推荐(0)

设计模式学习笔记——面向对象设计原则
摘要:1、单一职责一个类只应该做一样事情2、开闭原则对扩展开放,对修改封闭3、里氏代换以父类的名义统一进行调用,使用时赋以具体子类,实现多态。4、依赖倒转是里氏代换原则另一种表述。针对接口、抽象编程,其实也就是以父类的名义统一进行调用,使用时赋以具体子类,实现多态。5、接口隔离接口的单一原则。一个接口只应... 阅读全文

posted @ 2013-12-01 21:09 左直拳 阅读(118) 评论(0) 推荐(0)

设计模式学习笔记——类图
摘要:学习设计模式,少不了类图。要能看懂类图。类图中比较容易混淆,分辨不清的是类与类之间的关系。关系如下:1、关联就是两个类有关系。表现为 我中有你,一个类里面含有另一个类,或者是某类类型的属性,或者是某类类型的方法。1)双向关联我中有你,你中有我。这是默认情况。图:一条直线。2)单向关联我中有你,你中无... 阅读全文

posted @ 2013-12-01 10:30 左直拳 阅读(180) 评论(0) 推荐(0)

设计模式基础
摘要:23种设计模式!策略模式抽象工厂模式工厂方法模式代理模式桥接模式原型模式模板方法模式备忘录模式命令模式状态模式组合模式解释器模式适配器模式迭代器模式单例模式观察者模式访问者模式中介者模式装饰模式外观模式亨元模式职责链模式亨元模式备忘录模式问你怕未?虽然有这么多种模式,但基础是面向对象。其中有两样东西... 阅读全文

posted @ 2013-09-14 00:34 左直拳 阅读(175) 评论(0) 推荐(0)

导航