![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
设计模式
zy19982004
这个作者很懒,什么都没留下…
展开
-
设计模式学习十四:状态模式
一.概念 状态模式:当一个对象的内在状态改变时允许改变其行为,看起来就像是修改这个类。 二.UML Context(应用场景),持有State对象的引用。不管在任何时候,只有有人调用Context的request方法,它就会被委托到对应的状态来处理。 State(具体对象的共同接口),任何状态实现类都实现这一接口,做到状态之间的互相切换。 Concre...原创 2012-05-01 22:42:52 · 107 阅读 · 0 评论 -
设计模式学习十三:迭代器模式
一.概念 迭代器模式提供一种方法顺序访问一个聚合对象中的各个元素,而不暴露该对象的内部方法。 二.UML Aggregate(集合对象抽象类)。 ConcreteAggregate(聚合对象具体类)。里面必然有某种数据结构,能增删改查所持有的对象。 Iterator(迭代器抽象类)。对外提供顺序访问聚合对象中对象的方法。 ConcreteIterat...2012-03-05 14:10:02 · 101 阅读 · 0 评论 -
设计模式学习十二:组合模式
一.概念 组合模式允许你将对象组合成树形结构来表现"整体/部分"层次结构。组合能让客户以一致的方式处理个别对象以及对象组合。 二.UML Component(对象接口),定义了对象可以做的事情。 Leaf(叶子结点对象)。 Composite(其它结点对象)。 三.实例分析 网上购物的时候,我们会发现,快递时一层一层下来的,我在北京朝阳区...2012-02-23 17:30:04 · 128 阅读 · 0 评论 -
设计模式学习十一:模板方法模式
一.概念 模板方法模式在一个方法中定义一个算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以在不改变算法结构的情况下,重新定义算法中的某些步骤。 二.UML AbstractClass(定义了算法的骨架)。 ConcreteClass(定义了算法估计中具体算法的实现)。 三.实例分析 做菜,对我来说是相当的简单。我做菜,都是一...2012-02-22 16:48:08 · 64 阅读 · 0 评论 -
设计模式学习十:外观模式
一.概念 外观模式提供了一个统一的接口,用来访问子系统中的一群接口。外观定义了一个高层接口,让子系统更容易被使用。 二.UML 三.实例分析 大四毕业那会,我们寝室的五个哥们,为了缅怀这即将逝去的大学生活,决定出去旅游,就是所谓的毕业旅行。刚开始考虑的是自己搞定一切,后来发现,还是有点难度,于是就报了旅行社。从这个例子里面,我抽象了这样...2012-02-22 10:59:28 · 63 阅读 · 0 评论 -
设计模式学习九:适配器模式
一.概念 适配器模式将一个接口转换成客户希望的另外一个接口。它使得原来由于接口不兼容而不能在一起工作的那些类可以一起工作。 二.UML 三.更加生动的例子 四.实例分析 去年买了一个本本,另外给本本配了罗技G1光电套。坑爹的是,光电套的鼠标是USB接口,键盘是PS2接口,可我的本本却没有PS2接口啊。于是跑到市...2012-02-21 17:18:43 · 172 阅读 · 0 评论 -
设计模式学习八:命令模式
一.概念 命令模式将一个请求封装成一个对象,从而使你可用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤销的操作。 二.UML Recevier(动作的接收者)。 Command(命令对象接口),调用命令对象的execute方法,就可以让接收者进行相关的动作。 ConcreteCommand(具体命令),将一个接收者对象绑定在一个操作...2012-02-21 14:21:08 · 71 阅读 · 0 评论 -
设计模式学习七:单例模式
一.概念 确保一个类只有一个实例,并提供一个全局访问点来获取该实例。 二.UML 三.三种单例模式 饿汉模式:在类加载的时候就实例化一个自己的对象。 package com.zzy.singleton; /** * 饿汉模式 * @author eason * */ public class Singleton { /...2012-02-20 15:16:39 · 90 阅读 · 0 评论 -
设计模式学习六:抽象工厂模式
一.概念 抽象工厂模式提供一个接口,用于创建相关或依赖对象的家族,而不需要明确知道具体类。 二.实例分析 CPU package com.zzy.abstractFactory; /** * CPU接口 * @author eason * */ public interface CPU { public void work...2012-02-17 16:31:42 · 105 阅读 · 0 评论 -
设计模式学习五:工厂方法模式
一.概念 定义了创建对象的接口,但有子类决定要实例化的类是哪一个。工厂方法把类实例化推迟到了子类(这个是GOF上的定义,总感觉定义的不好)。 二.实例分析 CPU package com.zzy.factoryMethod; /** * CPU接口 * @author eason * */ public interfac...2012-02-17 16:12:28 · 85 阅读 · 0 评论 -
设计模式学习四:简单工厂模式
一.概念 简单工厂模式是属于创建型模式,又叫做静态工厂方法(StaticFactory Method)模式。 二.实例分析 现需要一个cpu,各大厂家都能生成,我们到底选哪家呢。 CPU package com.zzy.simpleFactory; /** * CPU接口 * @author eason * */ p...2012-02-17 15:56:01 · 96 阅读 · 0 评论 -
设计模式学习三:装修者模式
一.概念 动态的给一个对象添加额外的职责。想要扩展功能的话,装饰者提供了一种有别于继承的另外一种选择。 二.UML Component(概念中提到的对象接口),也就是“被装饰者”。 ConcreateComponent(未添加任何职责的,对象接口的子类)。 Decorator(装饰者抽象类),扩张了对象接口的功能。 ConcreteDrcorator(具体...2012-02-16 15:21:57 · 152 阅读 · 0 评论 -
设计模式学习二:观察者模式
一.概念 在对象之间定义一对多的依赖,这样一来,当一个对象改变状态,依赖它的对象都会收到通知,并自动更新。 观察者模式也被称之为:主题-观察者模式,发布-订阅模式,前者是一,后者是多。 二.UML Subject(主题类),最主要的方法:添加/删除观察者,改变状态,通知观察者。 Observer(观察者类),当主题状态改变,通知观察者时,触发观察者...2012-02-15 16:21:20 · 145 阅读 · 0 评论 -
设计模式学习一:策略模式
一.概念 策略模式:它定义了一系列的算法,并将每一个算法封装起来,而且使它们还可以相互替换。策略模式让算法的变化不会影响到使用算法的客户。 二.UML Context(应用场景),持有Strategry对象的引用。 Context能动态指定Strategry具体的实现。 Context要使用Strategry提供的算法。 Strategry(抽象策略...2012-02-14 15:07:00 · 98 阅读 · 0 评论 -
设计模式学习
看了一些设计模式的书,但没有经过项目的历练,很快便会忘记,与”灵活运用设计模式“这一目标越来越远。遂决定记录下所看所得,与大家分享。本人知识有限,文中好或不好的地方,都希望大家提出宝贵的意见,我们共同学习,共同提高。 设计模式学习一:策略模式 设计模式学习二:观察者模式 设计模式学习三:装饰者模式 设计模式学习四:简单工厂模式 ...2012-02-14 12:40:13 · 72 阅读 · 0 评论 -
设计模式学习十五:代理模式
一.概念 代理模式:为对象提供一种代理,以控制这个对象的访问。 二.UML Subject:定义RealSubject和Proxy的共同接口,这样在任何使用RealSubject的地方都可以使用Proxy。 RealSubject:定义Proxy所代表的实体。 Proxy:代理类,保存一个实体对象的引用,代理委托实体做事。 三.实例分析 ...原创 2012-05-03 11:09:29 · 75 阅读 · 0 评论 -
Java ClassLoader学习四:ContextClassLoader
一.ContextClassLoader ContextClassLoader只是一个逻辑上的概念,在Java Api里并没有一个叫ContextClassLoader的类。 JVM默认类加载体系已经能满足大部分情况的使用了,那为什么还需要ContextClassLoader呢。但有时候这样的加载体系并不能满足要求,比喻需要动态加载应用程序开发人员提供的资源时。考虑JDBC的实现,J...2013-12-01 15:23:09 · 206 阅读 · 0 评论