command命令模式,将请求封装成对象,通过对象的形式来实现对请求的控制,例如排序、执行和取消等。        command命令模式也是一个遵循开闭原则的模式,避免了传统的if else的硬代码,又可以容易地把新的命令加入系统。        先声明一个公共接口,各个命令各自实现该接口。要使用该命令时,触发该命令或者向命令的使用者注册该命令,执行相应的方法即可。   & ...
      template method模版方法模式,说白了,就是抽象类的运用。模版方法模式很多时候都在用,利用该模式可以实现提高代码的复用率。它把各子类相同的方法放在抽象类,避免了编写重复的代码,而其他可变的方法强制型地在各子类各自实现,实现代码规范性。      在我们使用的一些软件包的时候,有一些要求我们继承其某个类,并实现其方法,例如struts的Action,要求实现execute方法。原因是在Action内部定义了一个实现其功能的代码架构,用户不必做其他的事情,只要在继承并实现ex ...
      state状态模式,在代码的结构上跟策略模式没什么区别,只是它们的应用则重点不同。一个对象的行为依赖以一些状态的变化而随之变化,一种传统的做法就是if else的条件判定硬代码,这样的代码级不美观,也不好扩展维护。采用state状态模式就是把各个不同状态的所以执行的代码分别放到不同的类中。
      strategy策略模式,策略即算法,策略模式是对算法的封装,把使用算法的使用者和算法本身分割开,分派给不同的对象管理。一系列的算法封装到一系列的策略类里面,作为一个抽象策略类的子类或接口的实现类。换句话说:就是准备一组算法,当条件或环境变化,需要不同的算法时,则向算法的使用者注册该算法,使得其可以在使用者的内部使用该算法。      传统的作法,是使用if else语句在方法中实现并选择不同的算法(很多使用面向对象语言编写程序的人还是停留在结构化的思维定势),这与面向对象 ...
      observer观察者模式,取名为观察者可能会让人费解,该模式的思想跟订阅/发布服务的思想是相近的,所以称为订阅/发布模式更为通俗贴切。      存在着这样的类:类A的某个状态发生改变,或者触发了某个事件,会影响到其他的n个类(一般是实现了相同的接口)的状态;或者n个类的某些状态是在某一时刻内“同时”发生的。一种不明智的作法就是,在类A中编写硬代码,如果n增加了,就要向类A添加相应的代码,并且这些代码会是跟前n-1次前添加的基本上是一样的。 public ...
      用poi读取ws的ppt文件时,会抛出Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 8的异常。(使用版本poi-3.0.2)。       解决办法是,打开项目的properties->java build path->order and export,发现poi放到了最后,把poi的包上移。问题解决!      上面的问题解决之后,再读 ...
      memento备忘录模式,就是利用平常所说的备忘录的思想,把一些可能在以后要用到的东西先记起来,等到要用的时候就可以查询备忘录,再次利用。在软件设计中就是将对象的状态存储起来,根据需要,这个对象只要向备忘录发出一个请求就能够从备忘录读取数据并恢复到先前的状态。     既然是备忘录就会有一个或以上的信息来源,一条或以上的记录和一个记录集(记录管理)。需要存储信息的对象就是信息的来源。     因为隐私的原因,备忘录只有,记录人才能看到。同样的,备忘录对象 ...
       mediator中介者模式,用来管理很多对象之间的相互作用,将一系列对象中对象之间传递消息的细节封装在一个独立的类中,从而减少这些对象之间直接交互所带来的复杂度,和集成测试的难度。       mediator调停者模式,是用在这种情况下的,有n个对象,他们之间形成了复杂的相互引用的关系,在最坏的情况下,可能形成了n*(n-1)/2的关系链,随着n的增大,n*(n-1)/2也就随之不断递增,从而就形成了一种高耦合的复杂结构。如果用一个调停者来管理这些对 ...
linbzh
搜索本博客
存档
最新评论