http://oldboy-bj.taobao.com/

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
上一页 1 2 3 4 5 6 7 8 ··· 18 下一页

2011年1月6日

摘要: http://www.35java.com/zhibo/forum.php?mod=viewthread&tid=271&extra=page%3D2Adapter模式的另一种作法是Class Adapter模式,在这个模式下,Adapter直接继承Adaptee(要引进的新类别),以拥有当中的成员及方法,在C++中的话可以这么作:C++中可以多重继承,但在Java中不行,所以在Java中若要采用Class Adapter,必须作点修改,一方面继承Adaptee,一方面实作Target的介面:代码的实现是这样的: public class Adapter extends Adaptee imp 阅读全文
posted @ 2011-01-06 16:00 老男孩咖啡 阅读(112) 评论(0) 推荐(0) 编辑

摘要: http://www.35java.com/zhibo/forum.php?mod=viewthread&tid=272&extra=page%3D2在 Gof 的书中指到Bridge模式的目的:“将抽象部份与它的实现部份分离,使它们都可以独立地变化。”这句话写得简短,这边再作进一步的解释,抽象部份指的是行为方面定义,实现方面指的是与特定平台相依的代码实现。一个实际的例子在Gof书中有提到,假设您定义了一个IWindow介面,这个介面只定义一些抽象的绘图行为,而不涉及平台的实作,今天您可以继承这个类来开发适用于X Window的XWindow类,也可以继承这个类来开发适用于WindowsXP系 阅读全文
posted @ 2011-01-06 15:59 老男孩咖啡 阅读(117) 评论(0) 推荐(0) 编辑

摘要: http://www.35java.com/zhibo/forum.php?mod=viewthread&tid=273&extra=page%3D2如果以绘图为例的话,一个文字是一个绘图元件,一个线段是一个绘图元件,而一个长方形也是一个绘图元件,这些绘图元件可以组成一个图片,如果将这个图片也视作一个绘图元件,则这么递回绘图下去,就可以组合成一个较大的、复杂的图形元件,这样的目的可以使用Composite模式来解决。对于使用者而言,无论是文字、线段或长方形,甚至是组合后的图片元件,它们都拥有一个共同的行为,使用者基本上并不会感觉出它们之间的操作有任何的不同,您可以拖曳、放大、缩小等等,这些行为 阅读全文
posted @ 2011-01-06 15:58 老男孩咖啡 阅读(101) 评论(0) 推荐(0) 编辑

摘要: http://www.35java.com/zhibo/forum.php?mod=viewthread&tid=274&extra=page%3D2在JavaSwing中的JTextArea元件预设并没有卷轴,因为设计人员认为卷轴的功能并不是一定需要的,而决定让程式人员可以动态选择是否增加卷轴功能,卷轴的功能是由JScrollPane元件提供,如果您要加入一个具有卷轴功能的JTextArea,您可以如下进行设计:JTextArea textArea = new JTextArea();JScrollPane scrollPane = new JScrollPane(textArea);JSc 阅读全文
posted @ 2011-01-06 15:58 老男孩咖啡 阅读(147) 评论(0) 推荐(0) 编辑

摘要: http://www.35java.com/zhibo/forum.php?mod=viewthread&tid=275&extra=page%3D2考虑您要撰写一个WebMail程式,您手上已经有一些已经开发好的元件(Component),像是开发WebMail所需要的SMTP处理类、允许上传附档的FileUpload类,以及Web安全相关的API、其它相关的Package等等。当您拿到一些现成的元件,并打算在您的应用程式中使用它们的话,您不应该直接将这些元件耦合至您的应用程式上,例如:上面的作法会让您的应用程式直接与多个元件耦合,这种作法不但与元件的依赖度高,日后要修改应用程式本身,或是更 阅读全文
posted @ 2011-01-06 15:57 老男孩咖啡 阅读(105) 评论(0) 推荐(0) 编辑

摘要: http://www.35java.com/zhibo/forum.php?mod=viewthread&tid=276&extra=page%3D2在 Gof 的书中指出,Flyweight的目的在于运用共享技术,使得一些细粒度的物件可以共享。Flyweight在牛津字典中的解释是"boxer of the lightest class"。意思是特轻量级拳击手?其实应该是取"thelightestclass"这部份的解释,一个特轻量级类别,这个类别所产生的物件可以共用在每一个场合(context),并依场合资讯表现物件外观。在书中所举出的例子是文档编辑器中的字元物件,若每个字元物件会包括字元 阅读全文
posted @ 2011-01-06 15:56 老男孩咖啡 阅读(144) 评论(0) 推荐(0) 编辑

摘要: http://www.35java.com/zhibo/forum.php?mod=viewthread&tid=277&extra=page%3D2在 Gof 的书中对Proxy模式的目的给定为:为其它的物件提供一种代理,以控制对这个物件的访问。由这句话所延伸出来的意思是,根据您的目的不同,您的代理物件将负有不同的责任,因为产生多种不同的代理情况。根据不同的代理目的,而有不同的代理情况,在Gof中所举的一个例子是VirtualProxy,当中举一个文档中内嵌图片的例子,假设您的图片是在文档分页的后面,一开始您并不用直接载入图片,而使用一个虚代理物件,代替图片被载入,以求开启一个文档的时候,速 阅读全文
posted @ 2011-01-06 15:56 老男孩咖啡 阅读(141) 评论(0) 推荐(0) 编辑

2011年1月5日

摘要: http://35java.com/zhibo/forum.php?mod=viewthread&tid=41&extra=page%3D3给定一个语言,定义它的文法的一种表示,并定义一个解释器,这个解释器使用该表示来解释语言中的句子。适用性当有一个语言需要解释执行,并且你可将该语言中的句子表示为一个抽象语法树时,可使用解释器模式。而当存在*下情况时该模式效果最好:1.该文法简单对于复杂的文法,文法的*层次变得庞大而无法管理。2.效率不是一个关键问题最高效的解释器通常不是通过直接解释语法分析树实现的,而是首先将它们转换成另一种形式。参与者1.AbstractExpression(抽象表达式)声 阅读全文
posted @ 2011-01-05 19:52 老男孩咖啡 阅读(135) 评论(0) 推荐(0) 编辑

摘要: http://35java.com/zhibo/forum.php?mod=viewthread&tid=40&extra=page%3D3将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤消的*作。适用性1.抽象出待执行的动作以参数化某对象。2.在不同的时刻指定、排列和执行请求。3.支持取消操作。4.支持修改日志,这样当系统崩溃时,这*修改可以被重做一遍。5.用构建在原语操作上的高层操作构造一个系统。参与者1.Comma*d声明执行操作的接口。2.ConcreteCommand将一个接收者对象绑定于一个动作。调用接收者相应的操作,以实现E 阅读全文
posted @ 2011-01-05 19:52 老男孩咖啡 阅读(109) 评论(0) 推荐(0) 编辑

摘要: http://35java.com/zhibo/forum.php?mod=viewthread&tid=42&extra=page%3D3给定一个语言,定义它的文法的一种表示,并定义一个解释器,这个解释器使用该表示来解释语言中的句子。适用性1.访问一个聚合对象的内容而无需暴露它的内部表示。2.支持对聚合对象的多种遍历。3.为遍历不同的聚合结构提供一*统一的接口(即,支持多态迭代)。参与者1.Iterator迭代器定义访问和遍历元素的接口。2.ConcreteIterator具*迭代器实现迭代器接口。对该聚合遍历时跟踪当前位置。3.Aggregate聚合定义创建相应迭代器*象的接口。4.Con 阅读全文
posted @ 2011-01-05 19:51 老男孩咖啡 阅读(128) 评论(0) 推荐(0) 编辑

上一页 1 2 3 4 5 6 7 8 ··· 18 下一页