Java设计模式
目录
1. 设计模式 ........................................................................................................................................ 2
1.1 创建型模式 .......................................................................................................................... 3
1.1.1 工厂方法 ................................................................................................................... 3 1.1.2 抽象工厂 ................................................................................................................... 5 1.1.3 建造者模式 ............................................................................................................... 9 1.1.4 单态模式 ................................................................................................................. 12 1.1.5 原型模式 ................................................................................................................. 14 1.2 结构型模式 ........................................................................................................................ 16
1.2.1 适配器模式 ............................................................................................................. 16 1.2.2 桥接模式 ................................................................................................................. 18 1.2.3 组合模式 ................................................................................................................. 21 1.2.4 装饰模式 ................................................................................................................. 25 1.2.5 外观模式 ................................................................................................................. 27 1.2.6 享元模式 ................................................................................................................. 31 1.2.7 代理模式 ................................................................................................................. 33 1.3 行为型模式 ........................................................................................................................ 36
1.3.1 责任链模式 ............................................................................................................. 36 1.3.2 命令模式 ................................................................................................................. 39 1.3.3 解释器模式 ............................................................................................................. 42 1.3.4 迭代器模式 ............................................................................................................. 44 1.3.5 中介者模式 ............................................................................................................. 48 1.3.6 备忘录模式 ............................................................................................................. 51 1.3.7 观察者模式 ............................................................................................................. 53 1.3.8 状态模式 ................................................................................................................. 57 1.3.9 策略模式 ................................................................................................................. 60 1.3.10 模板方法 ............................................................................................................... 62 1.3.11 访问者模式 ........................................................................................................... 64
1
1. 设计模式(超级详细)
内容简介
有感于设计模式在日常开发中的重要性,同时笔者也自觉对设计模式小有心得,故笔者*写二十三种设计模式的简单例子、 并整理二十三种设计模式的理论部分,综合汇总成这份Java设计模式(疯狂J*va联盟版),希望对大家有所帮助。
本份帮助文档主要是为了向读者介绍二十三种设计模式,包括模式的描述,适用性,模*的组成部分,并附带有简单的例
子和类*,目的是为了让读*了解二十三种*计模式,并能方便的查阅各种设计模*的用法及注意点。
所附的例子非常简单,慢慢的引导读者从浅到深了解设计模式,并能从中享受设计的乐趣。
由于每个人对设计*式的理解都不尽一致,因此,可能本文档的例子*有不恰当的地方,还望各位读者指出不恰当的地方。
欢迎登录疯狂J*va联盟进行技术交流,疯狂Java联盟的论坛宗旨是:
所有的技术发帖,均有回复。
疯狂Java联盟网址:http://www.crazyit.org
笔者简介
笔者曾师从李刚老师学习Java,现居广州。对Java软件开发、各种Java开源技术都非常感兴趣,曾参与开发、主持*发过大
量Java、Java EE项目,对Java、Java *E项目有一定认识*见解。欢迎大家与笔者就Java、Java EE相*方面进行技术交流。
笔者现为疯狂Jav*联盟的总版主(论坛ID:杨恩雄),也希望通过该平台与大家分享Java、Java EE技术、*得。
本人邮箱:yangenxiong@163.com
声明
本文档编写、制作过程中得到了疯狂Java联盟、以及笔者学习工作过程大量朋友的支持,大家都抱着一个目的:为国内软件 软件开发事业作出绵薄贡献。
我们在此郑重宣布,本*档遵循Apache 2.0协议。在完整保留全部文本(包括本版权页),并且不违反Apache 2.0协议的前提
下,允许和鼓励任何人进行全文转载及推广,我们放弃除署名权外的一切权利。
2
1.1 创建型模式
AbstractFactory ( 抽象工厂 ) FactoryMethod ( 工厂方法 ) Singleton ( 单态模式 ) Builder ( 建造者模式 ) Protot*pe * 原型模式 )
1.1.1 工厂方法
*义一个用于创建对象的接口,让子类决定实例化哪一个类。FactoryMethod使一个类的实例*延迟到其子类。
适用性
1.当一个类不知道它所必须创建的对象的类的时候。
2.当一个类希望由它的子类来指定它所创建的对象的时候。
3.当*将创建对象的职责委托给多个帮助*类中的某一个,并且*希望将哪一个帮助子类是代理者这一信息局部化的时候。
参与者
1.Product
定义工厂方法所创建的对象的接口。
2.ConcreteProduct 实现Product接口。
3.Creator
声明工厂方法,该方法返回一个Product类型的对象*
Creator也可以定义一个工厂方法的缺省实现,它返回一个缺省的ConcreteProduct对象。
可以调用工厂方法以创建一个Product对象。
4.ConcreteCreator
重定义工厂方法以返回一个ConcreteProduct实例。
类图
3
相关推荐: