![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java 设计模式
文章平均质量分 90
chenjie19891104
专业方向:web开发,Android移动开发
展开
-
设计模式实例系列文章之适配器模式
某个类拥有我们所需要的功能,但他的方法名却不能满足用户的期望,这时候需要使用适配器模式修改这个现存类和外界交互的接口,从而使其能满足用户的需求。适配器模式的宗旨是:保留现有类提供的服务,修改其接口使其能满足用户的需要。适配器模式分为:类适配器模式和对象适配器模式。一、类适配器模式:当前客户调用接口中requiredMethod()方法;而现存的一个类中含有一个名为usefulMethod(),它提供的功能正好可以满足客户的需求。但是由于现存的类和这个接口没有关联,所以客户无法直接使用usef原创 2010-10-19 19:16:00 · 1620 阅读 · 0 评论 -
学习设计模式之状态模式
State设计模式:按照我的理解,State设计模式,最主要的用途就是消除代码中过多的选择控制结构(if...elseif...else...和Switch case 结构)。因为含有太多选择控制结构的代码不利于扩展和维护。State设计模式定义:允许一个状态在改变其状态时,改变它的行为。我们将每一种状态封装成一个单独的类,但所有的状态类需要有一个同一个规范(接口)这样,运行时,根据传入的状态不同,表现不同的行为。下面是从网上看到的一个例子,比较好理解。原创 2010-10-21 07:33:00 · 1216 阅读 · 0 评论 -
JAVA设计模式之Chain-of-Responsiblility模式
<br />当一个请求可以被多个对象处理,同时又无法确定到底有谁来处理该请求,这时,我们就需要让该请求在这些对象之间一个个的接力,如果当前对象可以处理请求则处理它,否则,传递给下一个对象处理。这就是责任链模式的思想。责任链模式的组件结构图如下:<br /><br />可以看出,每个可能处理请求的对象实现同一个接口,同时,每个对象中维护下一个可能处理的对象,这样,就形成了一条责任链。<br /> <br />其中handle(IRequest request)方法的逻辑大致如下:<br /> <br />if原创 2011-05-10 15:19:00 · 7481 阅读 · 5 评论 -
JAVA设计模式之Visitor模式
<br />一个集合(Collection)中,可以包含一个Car,也可以包含一个Cat,对于不同类型的元素,他们的行为也不尽相同,比如,Car可能有start()行为,而Cat可能有eat()的行为。可是对于Collection来说,不管你是Car,还是Cat,取出来的都是Object,那么我们如何知道取出来的是什么呢?<br />我们可能会如下操作:<br />Iterator itor = collection.iterator();<br />while(itor.hasNext()){<br />原创 2011-05-04 13:46:00 · 18555 阅读 · 1 评论 -
JAVA设计模式之Template Method模式
现在让你设计一个类,这个类含有一个特定的功能,但是该功能中的某些操作的具体逻辑现在无法确定下来,因为不同的情况下,可能要求改变这些具体的操作。那么我们如何来设计呢???比如现在有一个算法Algorithm,它含有四个步骤(原子操作),分别是step1,step2,step3,step4。现在让你设计一个类来封装它,你该如何设计呢???你可能会想到,当我们在具体使用它的时候,直接以方法实现在需要的类中就可以了。但是,注意到,我们说过,算法的步骤(骨架)是确定的。所以,每次使用的时候,就意味着你都做了大量重复性原创 2011-05-05 08:45:00 · 2250 阅读 · 0 评论 -
JAVA设计模式之Strategy模式
<br />现在需要封装一个算法,但是该算法有很多种不同的实现,比如,一个排序算法,可能有插入排序,冒泡排序,快速排序等不同的实现,而且要求这些算法由使用者来决定具体使用的是哪个算法,如何来设计呢?<br /> <br />这是,我们就会用到策略模式了,策略模式,就是将一个算法的不同实现封装成一个个单独的类,这些类实现同一个接口,使用者直接使用该接口来访问具体的算法。这个样子,使用者就可以使用不同的算法来实现业务逻辑了。策略模式的组件如下:<br /> <br /><br />可见,策略模式中,Contex原创 2011-05-05 13:00:00 · 9608 阅读 · 0 评论 -
JAVA设计模式之Observer模式
<br />观察者模式,在开发中经常使用到。特别是在UI层,那么什么是观察者模式呢?观察者模式,有以下几个要点。<br /> <br />1、被观察者和观察者是一对多的关系,也就是同一个被观察者可以被多个观察者来观察。这样,在实现被观察者的时候,需要用一个集合的数据结构来存放所有观察该对象的观察者。<br />2、观察者要想观察被观察者,需要将自身注册给被观察者。<br />3、被观察者的属性发生变化的时候,需要通知所有注册了自己的观察者。<br />4、被观察者决定,哪些属性发生变化了,通知所有观察者。<原创 2011-05-05 17:24:00 · 2163 阅读 · 0 评论 -
JAVA设计模式之Mediator模式
<br />现实生活中,有很多实际的现象,比如,房产中介,购房者可以不去一家家房产商去跑,去联系,而可以通过房产中介来获取房产商的信息,同样的房产商也不用自己联系顾客,而是通过中介来完成。同样的,在一个大公司里,如果让每个同事直接交流,则这样的效率显然很低下,因为每个员工可能需要维护很多个同事的信息。这时,可以建立一个交流中介,由交流中介来负责传达每个同事的信息请求,这样,每个员工只需要维护一个中介的信息就OK了,而所有的工作都交付给中介来完成,由中介来负责维护各个同事的信息。<br /> <br />中介原创 2011-05-06 09:51:00 · 2956 阅读 · 1 评论 -
U8Framework4SSH ——开源了一套SSH2(Struts2+Spring+Hibernate)整合框架
U8Framework4SSH项目地址:https://github.com/u8-xiaohei/U8Framework4SSHU8Server中使用的SSH2(Struts2+Spring3+Hibernate4)框架,包括U8Server集成好的配置文件,以及抽象出来的一些通用组件,使得基于J2EE框架开发的同学可以快速展开工作。U8Server是U8SDK统一渠道SDK接入框架的服务器端。U原创 2015-09-10 20:28:42 · 4583 阅读 · 0 评论