`
liulanghan110
  • 浏览: 1076806 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论
文章列表

状态模式

 状态模式很简单,无论是理解,还是实现,都很简单。一、定义:1,状态模式允许一个"对象"在其内部状态改变的时候改变其行为。2,状态模式的角色:抽象状态,具体状态,环境(context)角色状态模式的大多数时候是为了解决if--else过多的问题的。当if-else过多时,若重新加入一种状态,会修改原来的代码。而使用状态模式,对原来的代码没有改动,只需添加新增的状态即可。 如下QQ状态例子: 抽象状态State.java package State; public abstract class State { //对应状态下的操作 public ab ...
《设计模式》中命令模式的定义为:将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤消的操作。  将“请求”封装成对象,以便使用不同的请求、队列或者日志来参数化其他对象。命令模式也支持可撤销的操作 命令模式可以将“动作的请求者”和“动作的执行者”分隔开来(解耦)   Undo、事务及延伸在定义中提到,命令模式支持可撤销的操作。其实命令模式之所以能够支持这种操作,完全得益于在请求者与接收者之间添加了中间角色。为了实现undo功能,首先需要一个历史列表来保存已经执行过的具体命令角色对象;修改具体命令角色中的执行方法,使它记录更多的执行细节,并 ...
观察者(Observer)模式又名发布-订阅(Publish/Subscribe)模式。GOF给观察者模式如下定义:定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。 在这里先讲一下面向对象设计的一个重要原则——单一职责原则。因此系统的每个对象应该将重点放在问题域中的离散抽象上。因此理想的情况下,一个对象只做一件事情。这样在开发中也就带来了诸多的好处:提供了重用性和维护性,也是进行重构的良好的基础。 因此几乎所有的设计模式都是基于这个基本的设计原则来的。观察者模式的起源我觉得应该是在GUI和业务数据的处理上,因为现在绝大多数讲解观察者模 ...

代理模式

代理模式是对象的结构模式。代理模式给一个对象提供了一个代理对象,并由代理对象控制对象的引用。               所谓代理,就是一个人或一个机构代表另一个人或机构采取行动。 代理模式在设计模式中的定义 ...
门面模式说对象的结构模式。外部与一个子系统的通信必须通过一个系统的一个门面对象进行,这就是门面模式。门面模式也成为外观模式、正面模式。 这个模式在系统中经常被用到,也是一个比较简单的模式。             如下例子,用户只需要知道去开机就可以了,其不必知道开机的具体过程。             门面模式的UML图: 代码: 门面Computer.java package Facade; //门面 public class Computer { private Power power = new Power(); private Bios bios = new B ...

JAVA多态的实现

    博客分类:
  • JAVA
代码如下: Mouse.java package Polymorphism; public class Mouse{ public String getMouse(){ return null; } }  PS2Mouse .java package Polymorphism; //PS2鼠标 public class PS2Mouse extends Mouse { public String getMouse(){ return "PS2鼠标&q ...
在计算机编程中,适配器模式(有时候也称包装样式或者包装)将一个类的接口适配成用户所期待的。一个适配允许通常因为接口不兼容而不能在一起工作的类工作在一起,做法是将类自己的接口包裹在一个已存在的类中。   有两类适配器模式:          ·对象适配器模式 - 在这种适配器模式中,适配器容纳一个它我包裹的类的实例。在这种情况下,适配器调用被包裹对  象的物理实体。    ·类适配器模式 - 这种适配器模式下,适配器继承自已实现的类(一般多重继承)。    关于JAVA适配器的解释    将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不 ...

多选下拉框

多选下拉框
每一个站的WEB-INF下都有一个web.xml的设定文件,它提供了我们站台的配置设定. web.xml定义:.站台的名称和说明.针对环境参数(Context)做初始化工作.Servlet的名称和映射.Session的设定.Tag library的对映.JSP网页设定.Mime Type处理.错误处理. ...
Global site tag (gtag.js) - Google Analytics