中介者模式(Mediator Pattern)定义:用一个中介对象来封装一系列的对象交互。中介者模式的组成部分:1) 抽象中介者(Mediator)角色:抽象中介者角色定义统一的接口用于各同事角色之间的通信。2) 具体中介者(Concrete Mediator)角色:具体中介者角色通过协调各同事角色实现协作行为。为此它要知道并引用各个同事角色。3) 同事(Colleague)角色:每一个同事角色都
桥接模式(Bridge Pattern)定义:将抽象部分与它的实现部分分离,使他们可以独立地变化。Bridge 模式是构造型的设计模式之一。Bridge模式基于类的最小设计原则,通过使用封装,聚合以及继承等行为来让不同的类承担不同的责任。它的主要特点是把抽象与行为实现分离开来,从而可以保持各部分的独立性以及应对它们的功能扩展。 桥接模式将实现和抽象放在两个不同的类层次中,
代理模式,定义为,为另一对象提供一个占位符或者替身以控制对这个对象的访问。故代理模式核心思想就是控制对象访问。 使用代理模式创建代理,可以让代表对象控制某一个对象的访问,该被代表对象可以是远程对象,创建开销大的对象或者需要安全控制的对象。 几种常见的代理控制访问方式:1)远程代理控制访问远程对象2)虚拟代理控制访问创建开销大的资源3)保护代理基于权限控制对资源的访问代理模式的基本类图 Proxy
RMI的实现远程方法调用基本流程 远程方法,可以让本地访问远程的对象。当需要访问远程对象的时候,一般需要在客户端
状态模式定义,允许对象在自己内部状态改变时改变它的行为,对象看起来就像是修改了它的类。该描述第一部分意思是,这个模式将状态封装进了一个独立的类,并将动作委托到对象的当前状态的状态对象。第二个部分意思就是,让客户感觉使用了对象能够改变它的行为,但是实际上这种设计模式 使用组合通过简单引用不同状态对象来造成类的改变假象。状态模式封装了一组行为。状态模式类图Context:是一个上下文类,可以拥有一些内
迭代器模式迭代器模式定义为,提供一种方法顺序访问聚合对象中的各个元素,又不暴露其内部的表示方法。迭代器模式允许访问聚合中的各个元素,为客户提供了统一的方法去访问各个集合,屏蔽了具体集合的类型,无论是List,Map,Set,散列表,数组等集合,在客户端表现的都是一种方法来获取该集合中的元素。 通常迭代器将遍历聚合的工作封装进一个对象中,在我们使用迭代器的时候,我们依赖聚合提供遍历,通常聚合都会返
模板方法模式定义为:在一个方法中定义了一个算法的骨架或者步骤,而将一些步骤延迟到子类中去实现。模板方法使得子类可以在不改变算法结构的情况下,重新定义算法中的某一些步骤。 模板方法在基类中定义了一个操作的流程顺序,能够保证该步骤按序进行,有一些步骤的具体实现在基类中已经声明,而将一些变化的步骤的具体实现交给了子类去实现,从而就达到了延迟一些步骤到子类中,模板方法一个最大的好处就是能够设定一个业
Struts2的体系与Struts1体系的差别非常大,因为Struts2使用了WebWork的设计核心,而不是Struts1的设计核心。Struts2中大量使用拦截器来处理用户的请求,从而允许用户的业务逻辑控制器与Servlet API分离。 Struts2框架的大概工作机制: 从图可以看出,一个请求在 Struts2 框架中的处理大概分为以下几个步骤: 1、客户端初始化一个指向
正则表达式的用法 正则表达式的作用主要有三: 验证数字是否符合特定模式; 利用正则表达式找到特定文本而后删除或者替换文本; 按模式匹配在字符串中查找查找匹配子字符串。 正则表达式就是有普通字符以及特殊字符(称为元字符)组成的文字模式。元字符前面的字符称为前导符,元字符按功能又分为限定符、定位符等类别,下面对常用的元字符进行列表说明。 常见元字符 说明
适配器模式 所谓适配器模式,将一个类的接口,转换为客户所期望的另一个接口。适配器让原本接口不兼容的类可以合作无间。适配器主要组成包括:目标接口:客户端所希望得到的接口适配器:这个主要就是将被适配器转换为目标接口,一般要实现目标接口,且包含被配饰器成员被适配器:也就是用来改造的,提供给适配器来转换的,通常要将该被适配器绑定传入到适配器中,让适配器得以转换。一般这种模式就是在不修改现有代码的情况下,
常见的排序算法之Java代码解释一 简要介绍 一般排序均值的是将一个已经无序的序列数据重新排列成有序的 常见的排序分为: 1 插入类排序 主要就是对于一个已经有序的序列中,插入一个新的记录。它包括:直接插入排序,折半插入排序和希尔排序 2 交换类排序 这类排序的核心就是每次比较都要“交换”,在每一趟排序都会两两发生一系列的“交换”排序,但是每一趟排序都会让一个记录排序到它的最终位置上。它包括:起泡
命令模式定义:将“请求”封装成对象,以便使用不同的请求、队列或者日志来参数化其他对象。命令模式也支持撤销的操作。 通常一个命令对象就是要执行的一个命令操作,实现了共同的接口,一个命令对象通过在特定的接受者上绑定一组动作来封装一个请求。一般命令对象将所要操作的动作和接受者绑定在里面,通过提供给外部一个execute()方法来触发所需要的操作。 命令模式实现了“命令的调用者”和“命令的接受者”
单件模式 在开发的过程中,有些时候只需要一个对象,如缓存,对话框,注册表,数据库连接或线程池等对象,为了确保在整个应用程序中能够保证该对象是唯一的,引入了单件模式。 单件模式,确保一个类只有一个实例,并提供一个全局访问点。 单件模式的一般组成: 1)定义一个该类的private static变量,确保
工厂模式背景: 一般在程序过程中,利用new来创建对象的时候,也就是在具体化一个类。我们一直所提倡的就是针对接口编程,这样就可以让程序不用依赖于具体类的实现,而在运行中动态的绑定来实现多态功能。如果代码是针对接口而写的,那么通过多态,它可以与任何新类实现该接口。但是倘若代码使用大量的具体类的时候,就不利于维护,一旦加入新的具体类的时候,就要修改代码。 一般创建新对象最简单的办法是使用new关
装饰者模式 装饰者模式:动态地将责任附加到对象上。若要扩展功能,装饰者提供了比继承更有弹性的替代方案。 具体被装饰者和抽象装饰类都继承于相同的抽象类,继承的是类型,而不是行为。行为来自装饰者和基础组件,或与其他装饰者之间的组合关系。它也称为追MM模式。 在实际开发中,对于应用中,如果一个基类包含许多个不同的子类,而每一个子类具有不同的附加物。此
Flex通过Blazeds利用Remoteservice与后台java消息推送 准备工作:Myeclipse中先建立一个Web project工程,然后导入Blazeds的文件,再转换为Flex项目类型。 前言:Flex 通过开源的BlazeDS消息服务来支持订阅及发布消息。这个消息服务管理着Flex客户端可以订阅或发布的目标地址。Flex提供了 Producer和Consumer这两个组件,
Linux中主流的两大软件管理机制:RPM和DPKG。RPM是由red hat开发的,许多distributions都是用的这样的机制,如Fedora,Cenos,SuSE, DPKG是Debian linux 社区开发,只要派生于Debian的其他ditributions都是用它,包括B2D,Ubuntu &nbs
Linux常用系统资源查看 1,df列出文件系统的整体磁盘使用量 Usage:df [-ahikHTm] [目录或文件名] -a:列出系统中所有的文件系统,包括特殊的/proc -i:不用硬盘容量大小显示,而以inode数量来显示 -k:以KB的容量显示各文件系统 -m:以MB的容量显示各文件系统 -h:以人们较易阅读的方式显示 -T:连同该分区的文件系
观察者模式 观察者模式定义了对象之间的一对多依赖,这样以来,当一个对象改变状态时候,它的所有依赖者都会接收到通知并且自动更新。 通常观察者模式,分为主题(Subject),观察者(Observer)。一般主要用在当一个对象发生变化的时候,需要通知许多对象的时候,发生变化的对象称为主题,而接受对象变化信息的对象则是观察者。一旦主题对象的数据库发生了变化,那么就会自动以某种方式送到观察者,观察者可
策略模式: 策略模式定义了算法族,分别封装起来,让他们之间可以互相替换,此模式让算法的变化独立于使用算法的客户。 策略模式它主要是定义了一个算法家族,该算法家族内的具体策略类可以自由在交换。它并不是利用继承来实现算法的,而是将多个不同种类的行为组合在接口或抽象类中,在子类中让客户来选择哪一个算法的实现。它主要就是采用委托模
Java利用JDom解析和传递XML格式数据 Java利用JDom来解析处理XML数据格式:需要的包jdom-1.1.2.jar1 将数据转换成XML格式的数据进行传递Element rootList, firstList, secondItem, thirdItem; //根元素标签名 rootList = new Element("root"); //根元素标签内的属性名与值 root
&n
Ubuntu init启动流程 Linux distros主流的有两种init方式: 一种是System V initialization,它来源于Unix并至今仍被各种Linux distros所采用; 一种是近几年提出的Upstart方式,基于事件机制,系统的所有服务,任务都
super daemon是一个在Linux下面全面管理自己服务设置的东东,他可以接管很多服务的设定,只需要在/etc/xinetd.d/下面放置好自己的配置文件就可以了,那么,具体应该怎么配置呢? 首先,在ubuntu下面,并没有预设安装xinetd这个东东的,那么我们就手动安装一下吧,简单的要命
一个系统管理员,可能要经常的添加用户,可能是在一台机器上,也有可能是在很多机器上要添加同一个用户。 基本上,批量添加用户有两种方式, 一是用useradd + passwd命令配合脚本来添加 主要是用来在不同的机器上添加不同的用户,或者在同一台机器上添加大量的规则命名的用户 二是用newusers+chpasswd来添加。 主要是可用于
Linux常见常用压缩命令 在linux中,文件的扩展名并没与多大的作用,文件的可执行仅仅与user中的第三位是否为X有关。一般扩展名仅仅做的是指示作用 常见文件扩展名: *.tar, *.tar.gz, *.gz, *.tgz, *.Z, *.bz2 常见压缩文件案扩展名: *.tar:tar程序打包的文件,并没压缩 *.gz:gzip程序压缩的文件 *.
一般模式:移动光标的方法 h或 向左方向键(←)光标向左移动一个字符j或 向下方向键(↓)光标向下移动一个字符k或 向上方向键(↑)光标向上移动一个字符l或 向右方向键(→)光标向右移动一个字符如果想要进行多次移动的话,例如向下移动30行,可以使用"30j"或 "30↓"的组合按键,亦即加上想要进行的次数(数字)后,按下动作即可![Ctrl]+ [f] 屏幕『向下』移动一页,相当于[PageDow
Linux中常用文件字符串分析的命令在linux中文件管理与系统管理的方面,经常会用到要从一个文件中或者一长串字符串中提取你所需要的数据,或者某些字段来进行查看或者分析,作为一个初级linux小菜鸟,我大体总结整理了几个常用的分析命令,希望能互相交流与探讨下。主要是管道命令中的几个命令: grep,sed,awk,cut,wc,split,
磁盘配额(Quota) 磁盘配额(quota),就是限制磁盘的使用量,可以针对一个具体的用户或者一个用户组来设置其最大的磁盘配额,目前主要用于网页空间的容量限制,邮件空间的限制,最大可用网络磁盘的限制。 在使用磁盘配额的过程中要有几个限制 仅仅针对整个文件系统,必须你要做磁盘配额的那个分区是独立的文件系统
Copyright © 2005-2024 51CTO.COM 版权所有 京ICP证060544号