
java设计模式
wtfpewfn
这个作者很懒,什么都没留下…
展开
-
桥接模式
桥接模式(别名:柄体模式) 将抽象部分与它的实现部分分离,使得它们都可以独立地变化。一 、 概述 桥接模式是关于怎样将抽象部分与它的实现部分分离,使得它们都可以独立地变化的成熟模式二、桥接模式的结构与使用 模式的结构中包括四种角色:•抽象(Abstraction)•实现者(Implementor)•细化抽象(RefinedAbstractio原创 2013-08-21 09:34:50 · 625 阅读 · 0 评论 -
生成器模式
生成器模式将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。一 、 概述 当系统准备为用户提供一个内部结构复杂的对象时,就可以使用生成器模式,使用该模式可以逐步地构造对象,使得对象的创建更具弹性。生成器模式的关键是将一个包含有多个组件对象的创建分成若干个步骤,并将这些步骤封装在一个称作生成器的接口中二、生成器模式的结构与使用 模式的结构原创 2013-08-21 09:48:15 · 857 阅读 · 0 评论 -
命令模式
命令模式(别名:动作,事务) 将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤消的操作。一 、 概述 在许多设计中,经常涉及到一个对象请求另一个对象调用其方法到达某种目的。如果请求者不希望或无法直接和被请求者打交道,即不希望或无法含有被请求者的引用,那么就可以使用命令模式。二、命令模式的结构与使用 模原创 2013-08-19 15:43:15 · 560 阅读 · 0 评论 -
浅析java callback 回调模式
引用:http://www.iteye.com/topic/438428看过spring、hibernate源码的朋友对callback回调模式应该并不陌生,用一句话来概括就是:“if you call me, i will call back”,说白了,就是有相互依赖关系的两个类之间的互相调用,现在看看下面的代码模型:Java代码 package com.c转载 2013-08-16 16:34:56 · 515 阅读 · 0 评论 -
一个经典例子让你彻彻底底理解java回调机制
引用:http://blog.youkuaiyun.com/xiaanming/article/details/8703708以前不理解什么叫回调,天天听人家说加一个回调方法啥的,心里想我草,什么叫回调方法啊?然后自己就在网上找啊找啊找,找了很多也不是很明白,现在知道了,所谓回调:就是A类中调用B类中的某个方法C,然后B类中反过来调用A类中的方法D,D这个方法就叫回调方法,这样子说你是不是有点晕晕的,转载 2013-09-02 09:48:28 · 488 阅读 · 0 评论 -
访问者模式
访问者模式 表示一个作用于某对象结构中的各个元素的操作。它使你可以在不改变各个元素的类的前提下定义作用于这些元素的新操作一 、 概述 当一个集合中有若干个对象时,习惯上将这些对象称作集合中的元素,访问者模式可以使得我们在不改变集合中各个元素的类的前提下定义作用于这些元素上的新操作。二、访问者模式的结构与使用模式的结构中包括五种角色:•抽象元素(Element)原创 2013-09-23 09:56:21 · 609 阅读 · 0 评论 -
代理模式
代理模式 为其他对象提供一种代理以控制对这个对象的访问。一 、 概述 代理模式是为对象提供一个代理,代理可以控制对它所代理的对象的访问。 代理模式最常见的两种情况:远程代理和虚拟代理。 二、代理模式的结构与使用 模式的结构中包括三种角色:•抽象主题(Subject)•实际主题(RealSubject)•代理(Proxy)1原创 2013-09-23 10:18:54 · 627 阅读 · 0 评论 -
享元模式
享元模式 运用共享技术有效地支持大量细粒度的对象。一 、 概述 一个类中的成员变量表明该类所创建的对象所具有的属性,在某些程序设计中我们可能用一个类创建若干个对象,但是我们发现这些对象的一个共同特点是它们有一部分属性的取值必须是完全相同的。二、享元模式的结构与使用 模式的结构中包括三种角色:•享元接口(Flyweight)•具体享元(Concrete原创 2013-09-23 09:40:00 · 754 阅读 · 0 评论 -
中介者模式
中介者模式 用一个中介对象来封装一系列的对象交互。中介者使各对象不需要显示地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。一 、 概述 中介者模式是封装一系列的对象交互的成熟模式,其关键是将对象之间的交互封装在称作中介者的对象中,中介者使各对象不需要显示地相互引用,这些对象只包含中介者的引用。当系统中某个对象需要和系统中另外一个对象交互时,只需将自己的请求原创 2013-08-19 15:04:51 · 639 阅读 · 0 评论 -
装饰模式
装饰模式(别名:包装器) 动态地给对象添加一些额外的职责。就功能来说装饰模式相比生成子类更为灵活。一 、 概述 装饰模式是动态地扩展一个对象的功能,而不需要改变原始类代码的一种成熟模式。在装饰模式中,“具体组件”类和“具体装饰”类是该模式中的最重要的两个角色。 二、装饰模式模式的结构与使用 装饰模式的结构中包括四种角色:• 抽象组件(Compone原创 2013-08-19 10:24:28 · 565 阅读 · 0 评论 -
谈一谈自己对依赖、关联、聚合和组合之间区别的理解
引用:http://blog.youkuaiyun.com/zhengzhb/article/details/7190158在学习面向对象设计对象关系时,依赖、关联、聚合和组合这四种关系之间区别比较容易混淆。特别是后三种,仅仅是在语义上有所区别,所谓语义就是指上下文环境、特定情景等。他们在编程语言中的体现却是基本相同的,但是基本相同并不等于完全相同,这一点在我的前一篇博文《设计模式中类的关系》中已经有转载 2013-09-25 09:33:29 · 591 阅读 · 0 评论 -
备忘录模式
备忘录模式(别名:标记) 在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,这样以后就可将该对象恢复到原先保存的状态。一 、 概述 备忘录模式是关于怎样保存对象状态的成熟模式,其关键是提供一个备忘录对象,该备忘录负责存储一个对象的状态,程序可以在磁盘或内存中保存这个备忘录,这样一来,程序就可以根据对象的备忘录将该对象恢复到备忘录中所存储的状态。原创 2013-09-25 09:40:07 · 750 阅读 · 0 评论 -
原型模式
原型模式 用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。一 、 概述 原型模式是从一个对象出发得到一个和自己有相同状态的新对象的成熟模式,该模式的关键是将一个对象定义为原型,并为其提供复制自己的方法。二、原型模式的结构与使用 模式的结构中包括两种角色:•抽象原型(Prototype)•具体原型(Concrete Prototy原创 2013-08-19 11:08:55 · 517 阅读 · 0 评论 -
观察者模式
观察者模式(别名:依赖,发布-订阅) 定义对象间的一种一对多的依赖关系,当一个对象的状态发生变化时,所有依赖于它的对象都得到通知并被自动更新。一 、 概述 在许多设计中,经常涉及到多个对象都对一个特殊对象中的数据变化感兴趣,而且这多个对象都希望跟踪那个特殊对象中的数据变化。 二、 模式的结构与使用 观察者模式的结构中包括四种角色:• 主题(Subject原创 2013-08-19 17:15:12 · 547 阅读 · 0 评论 -
责任链模式
责任链模式使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。将这些对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止一 、 概述 责任链模式是使用多个对象处理用户请求的成熟模式,责任链模式的关键是将用户的请求分派给许多对象,这些对象被组织成一个责任链,即每个对象含有后继对象的引用,并要求责任链上的每个对象,如果能处理用户的请求,就做出处理,不再将原创 2013-08-21 10:20:23 · 567 阅读 · 0 评论 -
工厂方法模式
引用:http://blog.youkuaiyun.com/zhengzhb/article/details/7348707定义:定义一个用于创建对象的接口,让子类决定实例化哪一个类,工厂方法使一个类的实例化延迟到其子类。类型:创建类模式类图:工厂方法模式代码[java] view plaincopyinterface IProduct { p转载 2013-01-11 15:07:32 · 359 阅读 · 0 评论 -
单例模式
引用:http://blog.youkuaiyun.com/zhengzhb/article/details/7331369定义:确保一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。类型:创建类模式类图:类图知识点:1.类图分为三部分,依次是类名、属性、方法2.以>结尾的为注释信息3.修饰符+代表public,-代表private,#代表protected,什么都没转载 2013-01-11 15:08:34 · 372 阅读 · 0 评论 -
迈出从3K到1W的重要一步——掌握设计模式
引用:点击打开链接IT职场的小菜经常有这样的疑问: 为什么一个相似的功能,大牛一会儿就搞定,然后悠闲地品着下午茶逛淘宝;而自己加班加点搞到天亮还做不完。 为什么用户提出需求变更后,大牛只需潇洒地敲敲键盘,改改配置;而自己将代码改了又改,删了又建,几乎晕厥,最后只能推翻重来。 为什么大牛写完的程序测试上线后,几乎完美运行,用户无懈可击;而转载 2013-01-11 15:12:29 · 397 阅读 · 0 评论 -
设计模式六大原则(1):单一职责原则
引用:点击打开链接定义:不要存在多于一个导致类变更的原因。通俗的说,即一个类只负责一项职责。问题由来:类T负责两个不同的职责:职责P1,职责P2。当由于职责P1需求发生改变而需要修改类T时,有可能会导致原本运行正常的职责P2功能发生故障。解决方案:遵循单一职责原则。分别建立两个类T1、T2,使T1完成职责P1功能,T2完成职责P2功能。这样,当修改类T1时,不会使职责P2发生故障风险;转载 2013-01-11 15:19:43 · 322 阅读 · 0 评论 -
设计模式中类的关系
引用:点击打开链接 在java以及其他的面向对象设计模式中,类与类之间主要有6种关系,他们分别是:依赖、关联、聚合、组合、继承、实现。他们的耦合度依次增强。1. 依赖(Dependence) 依赖关系的定义为:对于两个相对独立的对象,当一个对象负责构造另一个对象的实例,或者依赖另一个对象的服务时,这两个对象之间主要体现为依赖关系。定义比较晦涩难懂,但在jav转载 2013-01-11 15:14:11 · 321 阅读 · 0 评论 -
JAVA精典算法
JAVA经典算法40题【程序1】 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第四个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? 1.程序分析: 兔子的规律为数列1,1,2,3,5,8,13,21.... publicclass exp2{ publicstaticvoid main(String args[]原创 2013-01-21 09:11:35 · 591 阅读 · 0 评论 -
抽象工厂模式
抽象工厂模式(别名:配套) 提供一个创建一系列或相互依赖对象的接口,而无需指定它们具体的类。一 、 概述 当系统准备为用户提供一系列相关的对象,又不想让用户代码和创建这些对象的类形成耦合时,就可以使用抽象工厂方法模式来设计系统。抽象工厂模式的关键是在一个抽象类或接口中定义若干个抽象方法,这些抽象方法分别返回某个类的实例,该抽象类或接口让其子类或实现该接口的类重写这些抽原创 2013-08-19 11:15:26 · 494 阅读 · 0 评论 -
工厂方法模式
工厂方法模式(别名:虚拟构造) 定义一个用于创建对象的接口,让子类决定实例化哪一个类。FactoryMethod使一个类的实例化延迟到其子类。一 、 概述 当系统准备为用户提供某个类的子类的实例,又不想让用户代码和该子类形成耦合时,就可以使用工厂方法模式来设计系统。工厂方法模式的关键是在一个接口或抽象类中定义一个抽象方法,该方法返回某个类的子类的实例,该抽象类或接口让其子类或实原创 2013-08-19 11:24:25 · 498 阅读 · 0 评论 -
UML类图关系详讲
类(Class)_1 在UML中,使用一个长方形描述一个类的主要构成,将长方形垂直地分为三层。 第1层是名字层,类名字是常规字形,表明该类是具体类,类名字是斜体字形,表明该类是抽象类。 第2层是变量层,也称属性层,列出类的成员变量及类型,格式是“变量名字:类型”。 第3层是方法层,也称操作层,列出类的方法及返回类型,格式是“方法名字(参数列表):类型”。3.1原创 2013-08-19 15:35:32 · 768 阅读 · 0 评论 -
迭代器模式
迭代器模式(别名:游标) 提供一种方法顺序访问一个聚合对象中的各个元素,而又不需要暴露该对象的内部表示。一 、 概述 迭代器模式是遍历集合的成熟模式,迭代器模式的关键是将遍历集合的任务交给一个称作迭代器的对象。 二、迭代器模式的结构与使用 模式的结构中包括四种角色:•集合(Aggregate):•具体集合(ConcreteAggregate)•迭原创 2013-08-19 15:14:45 · 623 阅读 · 0 评论 -
适配器模式
适配器模式(别名:包装器) 将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。一 、 概述 适配器模式是将一个类的接口(被适配者)转换成客户希望的另外一个接口(目标)的成熟模式,该模式中涉及有目标、被适配者和适配器。适配器模式的关键是建立一个适配器,这个适配器实现了目标接口并包含有被适配者的引用二、适原创 2013-08-19 17:21:18 · 514 阅读 · 0 评论 -
状态模式
状态模式(别名:状态对象) 允许一个对象在其内部状态改变时改变它的行为。对象看起来似乎修改了它的类。一 、 概述 一个对象的状态依赖于它的变量的取值情况,对象在不同的运行环境中,可能具有不同的状态。在许多情况下,对象调用方法所产生的行为效果依赖于它当时的状态。 状态模式的关键是将对象的状态封装成为独立的类,对象调用方法时,可以委托当前对象所具有的状态调用相应的方法,使得原创 2013-08-21 09:40:33 · 649 阅读 · 0 评论 -
外观模式
外观模式为系统中的一组接口提供一个一致的界面,Façade模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。一 、 概述 外观模式是简化用户和子系统进行交互的成熟模式,外观模式的关键是为子系统提供一个称作外观的类,该外观类的实例负责和子系统中类的实例打交道。当用户想要和子系统中的若干个类的实例打交道时,可以代替地和子系统的外观类的实例打交道。二、外观模式的结构与使原创 2013-08-21 10:12:51 · 657 阅读 · 0 评论 -
模板方法模式
模板方法模式 定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。一 、 概述 模板方法是关于怎样将若干个方法集成到一个方法中,以便形成一个解决问题的算法骨架。模板方法模式的关键是在一个抽象类中定义一个算法的骨架,即将若干个方法集成到一个方法中,并称该方法为一个模板方法,或简称为模板。二、模板方法原创 2013-08-19 11:02:32 · 536 阅读 · 0 评论