`
azure2a
  • 浏览: 31988 次
  • 性别: Icon_minigender_1
  • 来自: 承德
社区版块
存档分类
最新评论

Java模式速查手册

阅读更多
自己按照阎宏《Java与模式》总结的Java模式总结,包括速查和详细内容。
内容包括
一、创建模式:动态决定怎样创建对象,创建哪些对象和如何组合这些对象的模式。(9页)
1、简单工厂(Simple Factory)
概念:由一个工厂对象决定创建哪些产品类的实例。
使用情况:需要根据不同条件产生不同产品类且产品类简单时使用。
实例:java.text.DateFormat。
(9页)
2、工厂方法(Factory Method)
概念:利用不同实现工厂接口的类产生不同产品。
使用情况:用于克服简单工厂不易于扩展的缺点。
实例:java.util.Collection。
(10页)
3、抽象工厂(Abstract Factory)
概念:利用不同实现工厂接口的类产生一类产品对象。
使用情况:产品是多于一个的产品族,一次使用一组产品。
实例:java.awt.peer.ButtonPeer。
(11页)
4、单例(Singleton)
概念:用于确保系统中某个类只有一个实例,而且自行向系统提供。
使用情况:只要求系统有一个实例的情况下使用。
实例:java.awt.Toolkit。
(12页)
5、建造(Builder)
概念:导演者对象利用创造者实例产生不同产品对象,隐藏产品产生过程。
使用情况:用于产品配置比较复杂的情况。
实例:JavaMail。
(17页)
5、原始模型(Prototype)
概念:利用原始对象生成更多相同对象。
使用情况:产品类动态加载并且具有一定产品等级结构。
实例:JavaBean串行化。
(19页)
二、结构模式:描述如何将类和对象结合到一起形成更大结构的模式。(22页)
1、适配器(Adapter)。
概念:把一个类的接口变成客户端所期待的另一种接口。
使用情况:系统所需的接口和提供的不相符。
实例:JDBC驱动。
(22页)
2、缺省适配(Default Adapter)
概念:为一个接口实现缺省实现,子类便可以从缺省类实现。
使用情况:接口比较复杂,子类不准备实现接口所有方法。
实例:WindowAdapter。(25页)
3、合成(Composite)
概念:把对象组织到树结构中,用来描述整体和部分的关系。
使用情况:某些需要有整体部分关系的结构,客户端需要平等对待构件。
实例:java.awt.Container。
(26页)
4、装饰(Decorator)
概念:以客户端透明的方式扩展对象功能。
使用请况:需要动态扩展一个类的功能,而且功能很多。
实例:java.io类。
(31页)
5、代理(Proxy)
概念:由代理对象代替原来对象的引用。
使用情况:需要在原来的对象操作时增加方法。
实例:Hibernate的Session。
(35页)
6、享元(Flyweight)
概念:类似于线程池,当系统需要大量对象,根据需求返回同一对象。
使用情况:系统有大量对象而且消耗大量内存。
实例:线程池。
(38页)
7、门面(Facade)
概念:利用几个对象实现对系统大量对象的访问。
使用情况:为一个复杂系统提供简单接口,保存子系统独立性。
实例:MVC中的View层。
(43页)
8、桥梁(Bridge)
概念:利用聚合代理继承,增加系统灵活性。
使用情况:系统需要在构件的抽象化角色和具体角色之间增加更多灵活性,要求角色改变不影响客户端,抽象和具体角色独立变化。
实例:JDBC桥,java.awt.Peer。
(45页)
三、行为模式:在对象间划分责任和算法的模式。(48页)
1、不变(Immutable)
概念:一个对象在被创建之后不再变化。
使用情况:当对象需要被对多个线程共享时可以使用不变模式。
实例:String类。
(48页)
2、策略(Strategy)
概念:针对一组算法,将每一个算法封装在共同接口的独立类中,使它们可以互相替换。
使用情况:系统需要动态的选择几种算法,并不希望客户端知道且不希望用多重条件来实现。
实例:java.awt.LayoutManager类。
(49页)
3、模板方法(Template Method)
概念:准备一个抽象类,将部分逻辑以具体方法及构造函数的形式实现,然后利用抽象方法使子类实现剩余逻辑,方法分为模板方法和基本方法。
使用情况:利用模板方法可以分开设计类,主设计师负责模板类。
实例:HttpServlet类。
(52页)
4、观察者(Observer)
概念:定义一对多的依赖关系,让多个观察者同时监听某一个主题对象。
使用情况:系统要求在某个对象状态变化时,某些其他对象需要作出相应的变化。
实例:java.awt省的事件处理。
(54页)
5、迭代子(Iterator)
概念:顺序地访问一个聚集中的元素而不需要暴露聚集的内部构成。
使用情况:当希望客户端利用通用方法访问聚集元素。
实例:java.util.Collection中类。
(57页)
6、责任链(Observer)
概念:很多对象由每一个对象及其下家对象的引用连接成一条链。请求在链上传递,知道链上某一个对象处理该请求。
使用情况:系统需要在不影响客户端的情况下动态重新组织链和分配责任。
实例:Servlet中的Filter。
(61页)
6、命令(Command)
概念:把一个请求或操作封装在一个对象中。
使用情况:系统可以把请求排队或者需要支持命令的撤销及日志支持。
实例:Swing中的撤销和恢复。
(64页)
7、备忘录(Memento)
概念:利用一个备忘录对象来存储另外一个对象内部的快照。
使用情况:系统需要在不改变对象的情况下存储对象状态。
实例:Hibernate中Cache。
(68页)
8、状态(State)
概念:允许一个对象在其内部状态变化时改变其行为,主对象利用状态对象执行不同操作。
使用情况:一个对象的行为依赖于它所处的状态,亦可替代多重条件语句,不同于策略模式在于状态模式的状态经常改变策略模式则只用一个策略。
实例:用户登录。
(75页)
9、访问者(Visitor)
概念:封装访问结构元素如树的算法,适用于结构变化少的结构。
使用情况:希望利用一组对象访问某种结构对象。
实例:HtmlParser工具。
(77页)
10、解释器(Interpreter)
概念:解释器模式可以定义某种语法结构并给出解释器。
使用情况:系统希望提供某种语法。
实例:Hibernate中的Expression。
(81页)
11、调停者(Mediator)
概念:调停者模式包装了一系列对象互相作用的方式,使得这些对象不必须互相引用。
使用情况:系统比较复杂时使用。
实例:Mvc中的View层。
(85页)
2
1
分享到:
评论

相关推荐

    Java版23模式速查手册

    Java版23种设计模式速查手册

    Java版模式速查手册

    NULL 博文链接:https://llying.iteye.com/blog/316200

    Design Patterns设计模式速查手册HandBood系列(By FengGe整理)

    Design Patterns设计模式速查手册HandBood系列(By FengGe整理) 本人整理用于开发的实用文档、书籍、工具

    Java版模式速查手册.rar

    模式参考手册,java程序员必备

    Java 软件开发+代码规范及技巧速查手册

    包含了Java语言的编写代码格式、注释规范、以及在编写代码时候的可能会存在的一些误区,同时也包含了常见的设计模式

    全栈开发速学速查手册集锦

    全栈开发速学速查手册集锦: 知识体系:《Awesome Lists | CS 资料集锦》、《Awesome CheatSheets | 速学速查手册》、《Awesome Interviews | 求职面试必备》、《Awesome RoadMaps | 程序员进阶指南》、《Awesome ...

    软件工程师的技术规范集萃

    设计模式速查手册 C/C++语言编码规范 Java编码规范 Delphi 程序员代码编写标准指南 二、网络应用类 可扩展标记语言(XML)1.0(第二版) SOAP协议规范 IP协议(Internet Protocol) 传输控制协议(Transmission ...

    软件开发、软件工程技术规范集萃

    设计模式速查手册 C/C++语言编码规范 Java编码规范 Delphi 程序员代码编写标准指南 二、网络应用类 可扩展标记语言(XML) SOAP协议规范 IP协议(Internet Protocol) 传输控制协议 用户数据报协议(UDP) 三、软件...

    史上最全api,大多数是中文版

    15、OracleSQL语法速查.chm 16、oracle函数大全.chm 17、ORACLE九阴真经.chm 18、ORACLE命令速查8i.chm 19、Spring-Reference_zh_CN.chm 20、SQL.CHM 21、XML指南.chm 22、Apache.chm 23、aspx.chm 24、Java设计模式...

    mysql官方中文参考手册

    MySQL 5.1参考手册 目录 前言 1. 一般信息 1.1. 关于本手册 1.2. 本手册采用的惯例 1.3. MySQL AB概述 1.4. MySQL数据库管理系统概述 1.4.1. MySQL的历史 1.4.2. MySQL的的主要特性 1.4.3. MySQL稳定性 1.4.4. ...

    mysql5.1中文手册

    关于本手册 1.2. 本手册采用的惯例 1.3. MySQL AB概述 1.4. MySQL数据库管理系统概述 1.4.1. MySQL的历史 1.4.2. MySQL的的主要特性 1.4.3. MySQL稳定性 1.4.4. MySQL表最大能达到多少 ...

    MySQL 5.1参考手册 (中文版)

    1.1. 关于本手册 1.2. 本手册采用的惯例 1.3. MySQL AB概述 1.4. MySQL数据库管理系统概述 1.4.1. MySQL的历史 1.4.2. MySQL的的主要特性 1.4.3. MySQL稳定性 1.4.4. MySQL表最大能达到多少 1.4.5. 2000年兼容性 1.5...

    MySQL 5.1参考手册中文版

    1.1. 关于本手册 1.2. 本手册采用的惯例 1.3. MySQL AB概述 1.4. MySQL数据库管理系统概述 1.4.1. MySQL的历史 1.4.2. MySQL的的主要特性 1.4.3. MySQL稳定性 1.4.4. MySQL表最大能达到多少 1.4.5. 2000年...

    MySQL 5.1官方简体中文参考手册

    1.1. 关于本手册 1.2. 本手册采用的惯例 1.3. MySQL AB概述 1.4. MySQL数据库管理系统概述 1.4.1. MySQL的历史 1.4.2. MySQL的的主要特性 1.4.3. MySQL稳定性 1.4.4. MySQL表最大能达到多少 1.4.5. 2000年兼容性 1.5...

    Sphinx中文参考手册.rar

    搜索API支持PHP、Python、Perl、Rudy和Java,并且也可以用作MySQL存储引擎。搜索API非常简单,可以在若干个小时之内移植到新的语言上。 Sphinx 是SQL Phrase Index的缩写,但不幸的和CMU的Sphinx 目录 1. 简介 ...

    MySQL 5.1参考手册

    原始参考手册为英文版,与英文版参考手册相比,本翻译版可能不是最新的。 目录 前言 1. 一般信息 1.1. 关于本手册 1.2. 本手册采用的惯例 1.3. MySQL AB概述 1.4. MySQL数据库管理系统概述 1.4.1. MySQL的历史 ...

    IKAnalyzer中文分词器 v3.2 使用手册.rar

    采用了多子处理器分析模式,支持:英文字母(IP地址、Email、URL)、数字(日期,常用中文数量词,罗马数字,科学计数法),中文词汇(姓名、地名处理)等分词处理。 优化的词典存储,更小的内存占用。支持用户...

    MySQL5.1参考手册官方简体中文版

    MySQL 5.1参考手册 这是MySQL参考手册的翻译版本,关于MySQL参考手册,请访问dev.mysql.com。 原始参考手册为英文版,与英文版参考手册相比,本翻译版可能不是最新的。 This translation was done by MySQL ...

Global site tag (gtag.js) - Google Analytics