代理模式,个人认为就是把你要使用的一个对象尽享封装,包装。编程原对象的一个副本,在使用的时候直接使用他这个副本就可以了!他的作用用专业点的语言描述就是为其他的对象提供一个代理方便控制这个对象。当我们不能直接调用另外一个对象,但是又不得不用这个对象的某些功能,此时代理对象就能起到链接客户和目标对象的一个代理. 代理模式一般涉及到三个角色,分别为: 1. 抽象角色:他提供真实对象和代理对象的共同接口。 2. 代理角色:通俗地说,代理角色是对原对象(目标对象)进行包装,他有着和原对象相同的接口,并且可以执行真实对象的操作。 3. 真实角色:即目标对象,最终我们需要对他的操作。 代理模式分为两种,一 ...
昨天讨论了Adapter模式的一种情况Object Adapter,他比较适用于某些时候的二次开发,但我们拿到某一个组件的class文件,没有源码,只有功能列表的情况时,某些时候整合需要Object adapter。Adapter还有另外一种情况 Class Adapter。 我们现在的程序使用接口 PutBags public interface PutBags { public void putAllBags(); } 如果我们有一个类的class文件PutFootBall,而无法适用其源码。只能适用其中的putAllFootBall()方法。 public class ...
Adapter模式使原本由于接口不兼容而不能在一起工作的类可以一起工作,即为一个内容合适但接口不匹配的对象创建一个新的接口.Adapter模式让现存的对象适应新的类结构,而不受他们的接口限制. 例如现在,我们有一个球袋类BasketballBag负责完成装入篮球。 public class BasketballBag{ public void putBasketball(){ System.out.println("Put in BasketBall...."); } } 有一个专门负责装入操作的类的方法putBalls()来调用Basketba ...
最近遇到一个需求,是要对一个类增加一些新的功能,原则上讲是不改变这个类的代码,不改变这个类的继承关系。以前了解过Decorator模式,所以特意又深入学习一会。 什么时候需要Decorator模式:它的主要功能是不改变类的代码和继承关系,为这个类增加功能。 例如我要计划做一件事情(例如 打印某段文字) public class DoWork(){ public void doWork(){ System.out.prinln("Do Work....."); } } ] 可是由于工作变化,我需要在DoWork之前做另外一件事(打印一段特殊文字),并 ...
2007-11-02

郁闷啊!

关键字: 基础
最近一直忙着学习新技术。以前总是感觉自己喜欢去研究那学比较成熟的技术,最近突然迷恋上学习一些新的,比较陌生得东西。在这过程中清楚的感觉的自己的基础知识太过贫乏了,开始怀疑自己这两年都在什么?时间就这么荒废了。到头来虽然看看自己有很多参与和负责的项目,但是想想技术,自己总是觉得自己比较空虚。和股市中“只赚指数,不赚钱”的感觉差不多。 所以从现在开始给自己一个六个月的计划,补充基础知识。从最简单的 jsp + servlet +java基础知识开始。不要放过一些细节。研究一下以前参与的过的项目。好好总结一下! 希望从明年下半年开始有个新的开始!
JS中document对象详解 document 文挡对象 - JavaScript脚本语言描述 对象属性 document.title //设置文档标题等价于HTML的<title>标签 document.bgColor //设置页面背景色 document.fgColor //设置前景色(文本颜色) document.linkColor //未点击过的链接颜色 document.alinkColor //激活链接(焦点在此链接上)的颜色 docum ...
javascript页面排序 今天项目中需要页面点击表头,按升降排序,查找了各方面资料,根据网上实例,自己改写了一个简单的例子 说到排序,肯定少不了Array Methods 中的 sort(),简单的介绍一下. sort()方法可用来排列数组中的元素,语法是 arrayObject.sort(sortByRequest) 注释: 1.sortByRequeset是可选项,指定排列次序。必须是一个函数。 2.sort()默认是没有参数,函数按照字母大小排列。如果是数字按照默认情况排列,会出现错误(e.g:1,11,2,21) 3.当使用sort()后, ...
generic 学习 一.使用Type-safe的list。 例如: List<E> list = new List<E>(); public boolean addMessage(E o){ }; 其中E只是一个占位符,上例中,List<E> 中E表示list的参数可以接受的数据的类型。第二个表示函数addMessage声明了一个变量 E,并将它参数化。 //表示listOfString可以存入String实例,但是必须指定一个可以接受相同类型的实例给他。 List<String> listStrings ; // 表示 ...
一.使用Arrays的操作. 1. toString(Object[] a) :返回指定数组的内容的字符串表示形式. 2. deepToString(Object[] a) :返回指定数组“深层内容”的字符串表示形式,他接受的对象是数组,也就是说他可以打印出数组中的数组。 3.deepEquals(Object[] a,Object[] b) :比较两数组是不是深层相等,相等返回true,否则false; 4. fill() :主要是把指定的制,分配给数组中制定的制。参数形式不定,具体看javaDoc. 5. clone() 创建并返回此对象的一个副本 例子 ...
       一对新婚夫妇生活贫困,要靠亲友的接济才能活下去。一天,丈夫对妻子说:“亲爱的,我要离开家了。我要去很远的地方找一份工作,直到我有条件给你一种舒适体面的生活才会回来。我不知到会去多久,我只求你一件事,等着我,我不在的时候要对我忠诚,我也会对你忠诚的。”        很多天后,来到一个正在招工的庄园,他被录用了。他要老板答应他一个请求:“请允许我在这里想干多久就多久,当我觉得应该离开的时候,您就要放我走。我平时不想支取报酬, ...
Ozone
搜索本博客
最近加入圈子
存档
最新评论