设计模式
文章平均质量分 92
jtlyuan
这个作者很懒,什么都没留下…
展开
-
策略模式--Strategy
策略模式的目的是定义一系列算法,把它们封装起来,并且使它们可以相互替换.本模式使得算法可以独立于它的客户而变话. /** * 抽象策略(Strategy)角色 * @author Salmon * */ public interface Strategy { public void algorithmInte原创 2012-01-06 13:56:42 · 390 阅读 · 0 评论 -
模板方法模式Templet Method Pattern
什么是模板方法模式:定义一个操作中的算法的骨架,而将一些步骤延迟到子类中,模板方法可以使子类可以不改变一个算法的结构即可以重定义该算法的某些特定步骤。 模板方法模式的特点:把不变的行为搬到超类,去除子类中重复的代码来体现他的优势。 当不变的和可变的行为在方法中混合在一起时,不变的行为就会在子类中重复出现,模板方法模式就是将这些不变的行为搬移到一个超类中,避免重复代码。...原创 2011-10-31 17:21:14 · 118 阅读 · 0 评论 -
单例(Singleton)模式
单例(Singleton)模式:保证只有一个实例,静态引用,私有构造方法,公共获取函数 public class Singleton { public static Singleton instance; private Singleton() { } public static Singleton getInstance() { if (instance == null) { ...原创 2011-11-01 20:01:52 · 76 阅读 · 0 评论 -
简单工厂和工厂方法
一、简单工厂模式 简单工厂模式的实质是由一个工厂类根据传入的参数,动态决定应该创建哪一个产品类(这些产品类继承自一个父类或接口)的实例。 public interface Sample{ } Public class SampleA implements Sample{ } Public class SampleB implements Sample{ } public clas...原创 2011-11-02 21:29:25 · 116 阅读 · 0 评论 -
原型模式--Prototype
原型模式是创建型模式,用意是:通过给出一个原型对象来指明所要创建的对象类 型,然后用复制这个原型对象的办法创建出更多的同类型对象。 首先要明白 在 java 中 有种说法 叫 深克隆 和 浅克隆, 所谓深浅 ,指的是: String s1= "zzcfront"; String s2 = s1 ; 上面 是字符串的 浅克隆 ,只是克隆的地址 并没有创建新的对象 。 所以说 : 浅拷贝只拷贝地址,不...原创 2011-11-07 22:28:03 · 80 阅读 · 0 评论 -
装饰模式--Decorator pattern
定义:动态地给一个对象增加其他职责,就增加对象的功能来说,装饰模式比生成子类实现更为灵活。UML图如下: Code:抽象构件(Component)角色:给出一个抽象接口,以规范准备接收附加责任的对象和抽象装饰器。 具体构件(ConcreteComponent)角色:定义一个将要接收附加责任的类。 抽象装饰(Decorator)角色:持有一个构件(Co...原创 2011-11-16 19:05:09 · 92 阅读 · 0 评论 -
代理模式---proxy
代理(Proxy)模式给某一个对象提供一个代理,并由代理对象控制对原对象的引用。为其它对象提供一种代理以控制对目标对象的访问。即第三方对象通过访问代理对象而达到访问目标对象之目的,与此同时,代理对象在访问目标对象前后加入特定的逻辑以实现功能的扩展 interface IProxy { string Function1(); string ...原创 2011-11-16 21:13:44 · 126 阅读 · 0 评论 -
代理模式与装饰模式的区别
代理模式和装饰者模式上在语法形式上几乎完全一样,那么它们的区别在哪里呢? 装饰者模式:动态地给一个对象添加一些额外的职责。就增加功能来说,装饰模式相比生成子类更加灵活 代理模式:为其它对象提供一种代理以控制对这个对象的访问。 其实,它们的着重点一个在于“增加”职责,另一个在于“控制”访问。这是它们最本质的区别。 由此可以看到:学习设计模式重点在于“语义”上把握,而不是追求它的“形式。代理模式的...原创 2011-11-16 22:12:04 · 256 阅读 · 0 评论 -
适配器--Adapter
问题引出:大家生活中可能碰到的一个问题就是你新买的手机自带的耳机是2.5接口的,不幸的是有一天你的耳机坏了,你去市面上根本就找不到2.5的耳机了,基本上是3.5接口了,没办法你只好买了个3.5接口的耳机,老板告诉你:“我给你一个适配器”这不问题就解决了。问题分析:3.5的接口的耳机在你手机上本来是没法使用的,因为它没有按照2.5接口的设计啊,而现在我又想使用这幅耳机,于是乎有了“适配器(Ada...原创 2011-11-17 16:57:11 · 85 阅读 · 0 评论 -
外观模式--Facade
Facade外观模式,是一种结构型模式,它主要解决的问题是:组件的客户和组件中各种复杂的子系统有了过多的耦合,随着外部客户程序和各子系统的演化,这种过多的耦合面临很多变化的挑战。在这里我想举一个例子:比如,现在有一辆汽车,我们(客户程序)要启动它,那我们就要发动引擎(子系统1),使四个车轮(子系统2)转动。但是实际中我们并不需要用手推动车轮使其转动,我们踩下油门,此时汽车再根据一些其他的操作使...原创 2011-11-19 14:16:44 · 81 阅读 · 0 评论 -
组合模式--Composite
Composite模式定义:将对象以树形结构组织起来,以达成“部分-整体” 的层次结构,使得客户端对单个对象和组合对象的使用具有一致性.Composite好处:1.使客户端调用简单,客户端可以一致的使用组合结构或其中单个对象,用户就不必关系自己处理的是单个对象还是整个组合结构,这就简化了客户端代码。2.更容易在组合体内加入对象部件. 客户端不必因为加入了新的对象部件而更改代码。 ...原创 2011-11-25 20:53:47 · 124 阅读 · 0 评论 -
Java程序员从笨鸟到菜鸟之(三十二)大话设计模式之设计模式分类和三种工厂模式
设计模式分类首先先简单说一下设计模式的分类设计模式可以分为三大类,分别是创建型设计模式、行为型设计模式以及结构型设计模式。创建型的设计模式:单例模式(Singleton)、构建模式(Builder)、原型模式(Prototype)、抽象工厂模式(Abstract Factory)、工厂方法模式(Factory Method)行为设计模式:策略模式(Strategy)、状态模转载 2012-04-15 16:46:55 · 849 阅读 · 0 评论 -
Java程序员从笨鸟到菜鸟之(三十一)大话设计模式之设计模式遵循的七大原则
转载于:http://blog.csdn.net/csh624366188/article/details/7459918最近几年来,人们踊跃的提倡和使用设计模式,其根本原因就是为了实现代码的复用性,增加代码的可维护性。设计模式的实现遵循了一些原则,从而达到代码的复用性及增加可维护性的目的,设计模式对理解面向对象的三大特征有很好的启发,不看设计模式,很难深层地体会到面向对象开发转载 2012-04-15 16:43:48 · 441 阅读 · 0 评论 -
适配器--Adapter
问题引出:大家生活中可能碰到的一个问题就是你新买的手机自带的耳机是2.5接口的,不幸的是有一天你的耳机坏了,你去市面上根本就找不到2.5的耳机了,基本上是3.5接口了,没办法你只好买了个3.5接口的耳机,老板告诉你:“我给你一个适配器”这不问题就解决了。问题分析:3.5的接口的耳机在你手机上本来是没法使用的,因为它没有按照2.5接口的设计啊,而现在我又想使用这幅耳机,于是乎有了“适配器(Ada原创 2012-01-06 13:59:36 · 468 阅读 · 0 评论 -
装饰模式--Decorator pattern
定义:动态地给一个对象增加其他职责,就增加对象的功能来说,装饰模式比生成子类实现更为灵活。UML图如下: Code:抽象构件(Component)角色:给出一个抽象接口,以规范准备接收附加责任的对象和抽象装饰器。 具体构件(ConcreteComponent)角色:定义一个将要接收附加责任的类。 抽象装饰(Decorator)角色:持原创 2012-01-07 13:49:33 · 396 阅读 · 0 评论 -
原型模式--Prototype
原型模式是创建型模式,用意是:通过给出一个原型对象来指明所要创建的对象类 型,然后用复制这个原型对象的办法创建出更多的同类型对象。 首先要明白 在 java 中 有种说法 叫 深克隆 和 浅克隆, 所谓深浅 ,指的是: String s1= "zzcfront"; String s2 = s1 ; 上面 是字符串的 浅克隆 ,只是克隆的地址 并没有创建新的对象原创 2012-01-07 14:11:39 · 563 阅读 · 0 评论 -
简单工厂和工厂方法
一、简单工厂模式 简单工厂模式的实质是由一个工厂类根据传入的参数,动态决定应该创建哪一个产品类(这些产品类继承自一个父类或接口)的实例。 public interface Sample{ } Public class SampleA implements Sample{ } Public class SampleB implements Sam原创 2012-01-07 14:26:15 · 507 阅读 · 0 评论 -
单例(Singleton)模式
单例(Singleton)模式:保证只有一个实例,静态引用,私有构造方法,公共获取函数 public class Singleton { public static Singleton instance; private Singleton() { } public static Singleton getInstance() { if (instance == nu原创 2012-01-07 14:28:26 · 440 阅读 · 0 评论 -
模板方法模式Templet Method Pattern
什么是模板方法模式:定义一个操作中的算法的骨架,而将一些步骤延迟到子类中,模板方法可以使子类可以不改变一个算法的结构即可以重定义该算法的某些特定步骤。 模板方法模式的特点:把不变的行为搬到超类,去除子类中重复的代码来体现他的优势。 当不变的和可变的行为在方法中混合在一起时,不变的行为就会在子类中重复出现,模板方法模式就是将这些不变的行为搬移到一个超类中,避免重复代码。原创 2012-01-07 14:31:32 · 767 阅读 · 0 评论 -
组合模式--Composite
Composite模式定义:将对象以树形结构组织起来,以达成“部分-整体” 的层次结构,使得客户端对单个对象和组合对象的使用具有一致性.Composite好处:1.使客户端调用简单,客户端可以一致的使用组合结构或其中单个对象,用户就不必关系自己处理的是单个对象还是整个组合结构,这就简化了客户端代码。2.更容易在组合体内加入对象部件. 客户端不必因为加入了新的对象部件而更改代码。原创 2012-01-06 13:57:24 · 375 阅读 · 0 评论 -
外观模式--Facade
Facade外观模式,是一种结构型模式,它主要解决的问题是:组件的客户和组件中各种复杂的子系统有了过多的耦合,随着外部客户程序和各子系统的演化,这种过多的耦合面临很多变化的挑战。在这里我想举一个例子:比如,现在有一辆汽车,我们(客户程序)要启动它,那我们就要发动引擎(子系统1),使四个车轮(子系统2)转动。但是实际中我们并不需要用手推动车轮使其转动,我们踩下油门,此时汽车再根据一些其他的操作使车轮原创 2012-01-06 13:58:37 · 404 阅读 · 0 评论 -
代理模式与装饰模式的区别
代理模式和装饰者模式上在语法形式上几乎完全一样,那么它们的区别在哪里呢? 装饰者模式:动态地给一个对象添加一些额外的职责。就增加功能来说,装饰模式相比生成子类更加灵活 代理模式:为其它对象提供一种代理以控制对这个对象的访问。 其实,它们的着重点一个在于“增加”职责,另一个在于“控制”访问。这是它们最本质的区别。 由此可以看到:学习设计模式重点在于“语义”上把握,而不是追求它原创 2012-01-06 14:02:11 · 1296 阅读 · 0 评论 -
策略模式--Strategy
策略模式的目的是定义一系列算法,把它们封装起来,并且使它们可以相互替换.本模式使得算法可以独立于它的客户而变话. /** * 抽象策略(Strategy)角色 * @author Salmon * */ public interface Strategy { public void algorithmInterface(...原创 2011-11-25 21:23:53 · 79 阅读 · 0 评论