- 浏览: 194109 次
- 性别:
- 来自: 厦门
最新评论
-
行者买刀:
qxpidt 写道楼主,我想问下,嵌套这些WEB应用后,如何操 ...
JDIC一个能够用java调用ie内核的包 -
qxpidt:
楼主,我想问下,嵌套这些WEB应用后,如何操作你登录的COOK ...
JDIC一个能够用java调用ie内核的包 -
lookforwarding:
...
java重写JSplitPane的UI,设置分隔条的颜色 -
v韧竹v:
最后那个抽象工厂模式,CarType是不是定义错了,应该abs ...
设计模式之略见一斑(工厂模式Factory) -
l7810:
这与模板模式有什么区别啊?
设计模式之略见一斑(建造模式builder)
文章列表
PLSQL一个连接Oracle的客户端,安装就不用说了
注册方式直接把aalf.dat复制到安装目录
DbVisualizer 7.07 一个万能连接工具,支持DB2,INFROMXI,SQLSERVER,ORACLE等
在开发中,我们可能会经常碰到客户提了一新的需求,那么在现有的类实现新的需求呢?通常的做法是添加新的方法。但是有时候我们只能看到接口,而根本无法看到其接口实现。这个时候我们就无法往接口里添加接的方法。但是,开发人员能够多大设计的时候采用Visitor模式的话,结果就大不一样了。
Visitor模式就是让代码用户能够在不修改现有类层次结构的情况下,定义该类层次结构的操作。
例子:
关于访问者模式的JE上的例子比较多,而且争议也比较大。下面就举出个常见的Visitor模式的例子,欢迎拍砖。
如一个公司里有老板,经理,员工三种角色,每个角色都继续Human这个类,对于H ...
设计模式 写道
通常,面向对象的软件开发要求尽可能细致地分配,从而使每个对象都能够独立完成自己的任务。Observer模式通过尽可能缩小一个对象应对其他对象承担的责任范围来支持这种责任分配。而singleton模式将责任集中于其他对象都可以访问和复用的某个特定对象中。与singleton模式类似的是,中介者模式也对责任进行了集中,不过这种模式只是对某个特定对象集合的责任进行集中,而不是对整个系统的其他所有对象的责任进行集中。 如果对象群组中的交互错综复杂,而每个对象都需要了解本集合中的其他每个对象的情况,那么这个时候采用一个核心机构来负责控制它们的交互将非常有用,当这些相关对象之间的 ...
设计模式 写道
面向对象开发人员通常希望明确和减少对象间的责任,从而降低对象之间的耦合程序。这样我们的系统更加容易修改,同时也可降低产生缺陷的风险。从某种程度上说,java语言本身能够帮助降低对象间的耦合度。 ...
用户通常通过调用对象的方法来收集该对象的信息。但是当这个对象发生变化的时候,就会出现这样的一个问题:依赖该对象的用户如何才能知道对象的信息已经发生了变化?
我们可能通过这样一种设计:创建一个对象,每当用户所关心的对象某个方面发生变化的时候,该对象负责通知相关对此消息感兴趣的用户。这种设计的问题在于只有用户自己才知道他关心的某对象的哪些方面,因而这个受关注的对象不应当承担这种通知用户的责任。解决方法之一就是:在受关注的对象收到信息之后,通知用户,然后由用户去查询对象的新状态。
Observer模式的意图就是在多个对象之间定义一个一对多的关系,以便当一个对象状态改变的时候,其他所有 ...
有时候,我们需要创建对象曾在系统中出现过。在这个时候如果我们需要一个撤销功能以使状态回复到以前。这个时候我们需要备忘。
备忘模式的意图就是为对象提供状态存储和状态恢复功能。
下面就用一个 ...
模板方法模式就是预先作好一个模板,开发者只要根据模板添加相应的业务实现,这个就是架构啦。
它有如下特点:
1.这个模板一般是个抽象类,抽象出子类中部分公共的方法,从而减轻子类的负担。
2.这个模板可能会定义 ...
java设计模式 写道
策略模式在在给定的输入条件下,实现某个目标的计划或者方案。策略与算法类似;算法是定义好的过程,它能够提供一组输入产生一个输出。而策略是一个计划,它也涉及如何从一组输入到一组输出。在通常情况之下,与算法相比,策略是能够提供更大范围的可选方案。因而,策略通常是代表一组或一簇相互替换的方案。 当计算机程序存在多种策略时,程序代码会比较复杂。当有多个策略可用时,与策略相关的程序逻辑必须选择其中一个策略来执行,这时策略选择的程序代码可能变得很复杂,同时策略的逻辑通常也比较复杂,我们可以使用策略模式来整理这些代码。 策略操作定义策 ...
设计模式中的状态模式相对比较简单,简单的说就是对某个对象的状态进行管理.对象的状态如果的多的话,假如没有对其进行管理,极易造成管理混乱。从而使系统难以维护,所以State模式的意图就是将与状态有关的处理逻辑分散到代表对象状态的各个类中。这样的模式应用在用于多状态的系统中,如游戏开发者就经常用到这种状态模式。
下面举出一个小小的例子来说明这样的一个问题:
如游戏玩家从开始进行游戏到玩某个游戏时,这里面发生了多种状态的变化,同时也改变了一些隐藏的游戏状态。我们设计如下代码:
public abstract class Player {
//玩家当前的游戏状态
...
解释器模式是一种比较难理解的模式,但如果你对Command(命令模式)和Composite(组合模式)很了解的话,你会发现其实解释器模式就是这两种的组合.为何要使用解释器模式,如何用解释器模式呢,这就是下面我们要分析的问 ...
终于把构造模式的几种设计模式写完,接下来开始写的行为模式。说起Command我们就要想起菜单构造方法。
1.菜单命令:
我们常见的一种情况就是菜单命令,按钮监听。下面就举出一个常用的简单例子 :
public class Test {
public static void main(String[] args) {
JButton jb = new JButton();
jb.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
...
flyweight模式中文解释为轻量极模式,所以顾名思义。它的意义就是使程序中重复的元素能够集中共享起来,重而达到节省资源开销的目的。
实际我们比较经常看到的就是采用集合方法如List,Set,Map这种方式,将程序中重复的元素共享起来。如连接池,为了减少每次初始化连接等的开销,我们可以建立连接池,初始化几个连接,每次要用的时候把它从连接池中取出,加锁,用完之后再把它放回池中,并解锁。或者是图片加载,特别是在开发SWING这块的同志们会比较清楚,在对于比较频繁加载图片时,我们可以把图片放入集合中,下次再调用时直接从集合中加载。这样就省去了加载图片所花费的时间。
普通对象所需要完成的任务就是通过公共接口为外界提供自己所承诺的服务。然而,有时候合法的对象可能会因为各种原因而无法完成自己常规的任务。尤其是当对象需要长时候才能载入内存、对象正运行在另一台计算机上或者需要获取对象消息的时候,这种情况会频繁出现。在这种情况下,我们可以使用一个代理对象,由它来承担客户期待的责任,并将请求转发给其背后的目标对象。
Proxy模式的意图在于为对象提供一个代理或者占位来控制该对象的访问.
下面对代理对象的各种情况进行一一分析,它分别有
图像代理,远程代理,动态代理
1)图像代理
代理通常拥有与实际对象基本相同的接口。代理的工作方式是 ...
标头:(引自设计模式)
为了扩展代码库,通常给它添加新类或者新方法。有时候,你也许不希望在运行时候使用新行为来组合对象。Interpreter模式允许你组合可执行对象,这个对象的行为可能变化会非常快。在有些情况 ...
定义:
将对象以树形结构组织起来,以达成"部分-整体"的层次结构,使得客户端对单个对象和组合对象的使用具有一致性。
组合模式其实对是我们数据结构中的树形结构。一颗树下面还有子树,将要进行调用方法时,将会进行深度遍历.
Composite好处:1.使客户端调用简单,客户端可以一致的使用组合结构或其中单个对象,用户就不必关系自己处理的是单个对象还是整个组合结构,这就简化了客户端代码。2.更容易在组合体内加入对象部件. 客户端不必因为加入了新的对象部件而更改代码。
例子:
Junit的运行方法机制就是采用组合模式进行,为了达到自动化测试目的,Junit中定 ...