`
文章列表
迭代子Iterator模式又叫做游标模式,是对象的行为模式,迭代子模式可以顺序地访问一个聚集中的元素而不必暴露聚集的内部表像. Java聚集(Collection)对象是实现了共同的java.util.Collection接口的对象,从1.2版本开始,Java语言提供了 ...
在很多系统中,定时器都扮演着重要角色,有些任务必须按照一定的时间安排反复执行,有些任务必须在一段时间间隔后一次性执行,这些情况都需要运用定时器.从java1.3版本开始,定时器成为java.util库包的成员,值得研究的还有一个同时出出在swing库包中的定时器类,即javax.swing.Timer类,本章将详细说明这个Swing库包中的定时器的使用,它所蕴涵的模式以及它与java.util.Timer的区别.本章根据它们的米源把java.util.Timer叫做Utility定时器,而把swing库包所提供的Timer叫做swing定时器.一般来说,如果所需要定时的功能与swing无关的话, ...
在很多系统中,定时器都扮演着重要角色,有些任务必须按照一定的时间安排反复执行,有些任务必须在一段时间间隔后一次性执行,这些情况都需要运用定时器.从java1.3版本开始,定时器成为java.util库包的成员,值得研究的还有一个同时出出在swing库包中的定时器类,即javax.swing.Timer类,本章将详细说明这个Swing库包中的定时器的使用,它所蕴涵的模式以及它与java.util.Timer的区别.本章根据它们的米源把java.util.Timer叫做Utility定时器,而把swing库包所提供的Timer叫做swing定时器.一般来说,如果所需要定时的功能与swing无关的话, ...
软件系统中的事件处理允许两个或者多个对象根据它们的状态的变化进行通信和协调,在常见的事件处理模型中,对象通常被划分为三种:事件对象,事件制造者对象和事件接收者对象。一般而言,某一个对象是事件的制造者,蓁对象是事件的接收者,而事件对象本身封装了有关事件的信息,当事件制造者的内部状态发生变化时,会根据需要创建一个代表其状态变化的事件对象,并将它传给所有登记过的事件接收者对象. java1.0的事件处理机制是建立在责任链模式的基础上的,这样的事件处理机制不能满足大型应用系统的需要,在java1.1版本里,java事件处理机制有了一个较大的变化,新的事件处理机制是建立在观察者模式基础之上的,以事件的 ...
观察者模式是对象的行为模式,观察者模式定义了一种一对多的依赖关系,许多个观察者对象同时监听某个主题对象,这个主题对象在状态上发生变化时,会通知所有观察者对象,使它们能够自动更新自己.一个软件系统里包含各种对象,就像一片欣欣向荣的森林有各种生物一样,在一片森林里,各种生物彼此依赖和约束,形成一个个生物链,一种生物的状态变化会造成其他一些生物的相应变化,每一个生物都处于和别的生物的互动之中. 一:观察者模式中的角色 (A)抽象主题(Subject)角色:主题角色把所有对观察者对象的引用保存在一个聚集里,每个主题都可以有任何数量的观察者。抽象主题提供一个接口,可以增加和删除观察者对象,主题角色又 ...
一:Servlet简介 <br> Servlet的最广泛用途是建造动态的网页,没有Servlet或相应的动态技术(如CGI,ASP,JSP),一个Web服务器只能提供静态的网页,不能针对用户的请求提供相应的服务器端的操作,如查询数据库并根据查询结果构造一 ...
模式方法模式是类的行为模式,准备一个抽象类,将部分逻辑以具体方法以及具体构造子的形式实现,然后声明一些抽象方法来迫使子类实现剩余的逻辑。不同的子类可以以不同的方法实现这些抽象方法,从而对剩余的逻辑有不 ...
策略模式属于对象的行为模式,其用意是针对一组算法,将每一个算法封装到具有共同接口的独立的类中,从而使得它们可以相互替换。策略模式使得算法可以在不影响客户端的情况下发生变化. 问题描述: 假设现在要对不同地图书进行打折,如对所有教材类图书实行每本一元的折扣,对连环画图书每本7%的折扣,对非教材类的计算机图书3%的折扣,其余图书没有折扣.这个问题如何解决? 解决方案: (1)所有的业务逻辑都放在客户端里面,客户端利用条件选择语句决定使用哪一个算法,这样的话客户端代码会变得复杂难以维护. (2)客户端可以利用继承的办法在子类里面实现不同的行为,但是这样会使得环境和行为紧密耦合在一起,强耦合会 ...
一:什么是不变模式 一个对象的状态在对象被创建之后就不再变化,这就是所谓的不变模式.不变模式可样强对象的强壮性,它允许多个对象共享某一对象,降低了对该对象进行并发访问时的同步化开销,如果需要修改一个不变 ...
一:桥梁模式的用意 将抽象化与实现化脱耦,使得二者可以独立地变化,使得二者可以独立地变化,这就是桥梁模式的用意: (A)抽象化:存在于多个实体中的共同的概念性联系,就是抽象化,作为一个过程,抽象化就是忽略一些信息,从而把不现的实体当作同样的实体来对待. (B)实现化:把抽象的东西用把它具体的描述出来,就是实现化. (C)脱耦:所谓耦合,就是两个实体的行为的某种强关联,而将它们的强关联去掉就叫脱耦。在这里,脱耦是指将抽象化和实现化之间的耦合解脱开,或者说是将它们之间的强关联改成弱关联(所谓强关联,就是在编译的时期已经确定的,无法在运行时期动态改变的关联,所谓弱关联,就是可以动态地确定并且可以在 ...
一:门面模式的结构 门面模式要求一个子系统的外部与其内部的通信必须通过一个统一的门面(Facade)对象进行。这里主要有两个角色: (A)门面(Facade)角色:客户端可以调用这个角色的方法,此角色知晓相关的(一个或者多个)子系统的功能和责任,在正常情况下,本角色会将所有从客户端发来的请求委派到相应的子系统去. (B)子系统(Subsystem)角色:可以同时有一个或者多个子系统,每一个子系统都不是一个单独的类,而是一个类的集合,每一个子系统都可以被客户端直接调用,或者被门面角色调用,子系统并不知道门面的存在,对于子系统而言,门面仅仅是另外一个客户端而已。门面模式的用意是为子系统提供一个集 ...
一:享元模式的用意 享元模式以共享的方法高效地支持大量的细粒度对象,享元对象能做到共享的关键是区分内蕴状态和外蕴状态。 一个内蕴状态是存储在享元对象内部的,并且是不会随环境改变而有所不同的,因此一个享元 ...
一:加载延缓 相信大家都遇到这样的情况,一个系统需要加载一个模块,但是此模块的加载要耗费相当长的时间,因此,系统要显示一段"正在加载"的信息,同时将模块加载,在模块加载后,系统将"正在加载"的文字取消掉,并启动此模块,常见的例子有Netscape浏览器,JBuilder等大型软件.有时候加载一个图像也会造成时间的延迟,因此系统需要在放置图像的地方放一段文字信息,请用户用心等待。系统会在另一个线程中加载图像,而一旦图像加载完毕,就将等待信息换成该图像,这种做法叫做加载延缓,加载延缓显然是比较友好的用户界面的设计方案. 二:虚拟代理模式的应用 当一个真实主 ...
本章所述是来自真实的华尔款街金融网站项目,在本站要实现两个基本功能:一是必须对用户进行身份检查,二是对用户搜索次数进行统计,以便按照收费标准进行收费.在这里要用到两种模式:保护代理和智能代理。一个代理对 ...
一:什么是代理 代理模式给某一个对象提供一个代理对象,并由代理对象控制原对象的引用. 中国人是一个含蓄的民族,讲求微妙和间接的交流方式,对象间的间接通信也同样是面向对象的设计中一条重要的"审美观"。间接性的通信可以给出较低的耦合关系,较强的合作关系,以及微妙的结构和易于复用的设计架构。 代理模式的英文叫做Proxy,所谓代理,就是一个人或者一个机构代表另一个人或者另一个机构采取行动,在一些情况下,一个客户不想或者不能直接引用一个对象,而代理对象可以在客户和目标之间起到中介的作用. 比如说Window的快捷方式(Shortcut)就是一个代理的例子,如果原对象被删除,则快 ...
Global site tag (gtag.js) - Google Analytics