上一页 1 ··· 7 8 9 10 11 12 下一页
摘要: 简单地说,观察者模式定义了一个一对多的依赖关系,让一个或多个观察者对象监察一个主题对象。这样一个主题对象在状态上的变化能够通知所有的依赖于此对象的那些观察者对象,使这些观察者对象能够自动更新。 一、观察者模式的结构 本模式的类图结构如下: 图1、观察者模式的静态结构可从类图中看清楚。 在观察者模式里有如下的角色: . 抽象主题(Subject)角色:主题角色把所有的观察者对象的引用保存在一个列表里;每个主题都可以有任何数量的观察者。主题提供一个接口可以加上或撤销观察者对象; 图2、抽象主题角色,有时又叫做抽象被观察者角色,可以用一个抽象类或者一个接口实现;在具体的情况下也不排除使用具体类实现。 阅读全文
posted @ 2011-06-23 14:55 飞翔荷兰人 阅读(11618) 评论(0) 推荐(2) 编辑
摘要: 一、什么是单元测试写了个类,要给别人用,会不会有bug?怎么办?测试一下。用main方法测试好不好?不好! 1、不能一起测试!很多个类就需要很多main方法; 2、大多数情况下需要人为的观察输出确定是否正确;太累啦~使用JUnit: 1、只要运行JUnit Test,就可以同时测试多个方法,main是无法办到的; 2、只要看测试条是否为green就可以知道被测试的类是否正确;二、为什么要进行单元测试 1、重用测试,应付将来的实现的变化。 2、提高士气,明确知道我的东西是没问题的。 3、确保程序的健壮性,减少后期维护的成本。三、JUnit4 HelloWorld Eclipse自带JUnit包 阅读全文
posted @ 2011-06-23 13:33 飞翔荷兰人 阅读(624) 评论(0) 推荐(0) 编辑
摘要: 一、引子下面是吕振宇大牛的一个例子,个人觉得挺好的,有助于理解Bridge模式的设计目的:设想要绘制一幅图画,蓝天、白云、绿树、小鸟,如果画面尺寸很大,那么用蜡笔绘制就会遇到点麻烦。毕竟细细的蜡笔要涂出一片蓝天,是有些麻烦。如果有可能,最好有套大号蜡笔,粗粗的蜡笔很快能涂抹完成。至于色彩吗,最好每种颜色来支粗的,除了蓝天还有绿地呢。这样,如果一套12种颜色的蜡笔,我们需要两套24支,同种颜色的一粗一细。呵呵,画还没画,开始做梦了:要是再有一套中号蜡笔就更好了,这样,不多不少总共36支蜡笔。再看看毛笔这一边,居然如此简陋:一套水彩12色,外加大中小三支毛笔。你可别小瞧这"简陋" 阅读全文
posted @ 2011-06-22 16:48 飞翔荷兰人 阅读(10424) 评论(0) 推荐(1) 编辑
摘要: 类之间的关系1. 种类: Generalization(泛化),Dependency(依赖关系)、Association(关联关系)、Aggregation(聚合关系)、Composition(合成关系)。2. 其中Aggregation(聚合关系)、Composition(合成关系)属于Association(关联关系),是特殊的Association关联关系。3. Generalization(泛化)表现为继承或实现关系(is a)。具体形式为类与类之间的继承关系,接口与接口之间的继承关系,类对接口的实现关系。4. Association关联关系表现为变量(has a )。类与类之间的联接 阅读全文
posted @ 2011-06-22 15:07 飞翔荷兰人 阅读(1112) 评论(0) 推荐(0) 编辑
摘要: java.util包中包含了一系列重要的集合类。本文将从分析源码入手,深入研究一个集合类的内部结构,以及遍历集合的迭代模式的源码实现内幕。下面我们先简单讨论一个根接口Collection,然后分析一个抽象类AbstractList和它的对应Iterator接口,并仔细研究迭代子模式的实现原理。本文讨论的源代码版本是JDK 1.4.2,因为JDK 1.5在java.util中使用了很多泛型代码,为了简化问题,所以我们还是讨论1.4版本的代码。集合类的根接口CollectionCollection接口是所有集合类的根类型。它的一个主要的接口方法是: boolean add(Object c) ad 阅读全文
posted @ 2011-06-22 14:05 飞翔荷兰人 阅读(6083) 评论(2) 推荐(2) 编辑
摘要: 一、工厂模式主要是为创建对象提供过渡接口,以便将创建对象的具体过程屏蔽隔离起来,达到提高灵活性的目的。工厂模式在《Java与模式》中分为三类:1)简单工厂模式(Simple Factory):不利于产生系列产品;2)工厂方法模式(Factory Method):又称为多形性工厂;3)抽象工厂模式(Abstract Factory):又称为工具箱,产生产品族,但不利于产生新的产品;这三种模式从上到下逐步抽象,并且更具一般性。GOF在《设计模式》一书中将工厂模式分为两类:工厂方法模式(Factory Method)与抽象工厂模式(AbstractFactory)。将简单工厂模式(Simple Fa 阅读全文
posted @ 2011-06-21 15:59 飞翔荷兰人 阅读(186431) 评论(13) 推荐(24) 编辑
摘要: 一、什么是反射:反射的概念是由Smith在1982年首次提出的,主要是指程序可以访问、检测和修改它本身状态或行为的一种能力。这一概念的提出很快引发了计算机科学领域关于应用反射性的研究。它首先被程序语言的设计领域所采用,并在Lisp和面向对象方面取得了成绩。其中LEAD/LEAD++ 、OpenC++ 、MetaXa和OpenJava等就是基于反射机制的语言。最近,反射机制也被应用到了视窗系统、操作系统和文件系统中。反射本身并不是一个新概念,尽管计算机科学赋予了反射概念新的含义。在计算机科学领域,反射是指一类应用,它们能够自描述和自控制。也就是说,这类应用通过采用某种机制来实现对自己行为的描述( 阅读全文
posted @ 2011-06-21 11:27 飞翔荷兰人 阅读(24484) 评论(3) 推荐(4) 编辑
摘要: 类定义:1、被代理接口和实现类:Tank类实现了Moveable接口,能够move()package com.zec.disignmode;public interface Moveable { public void move();}package com.zec.disignmode;import java.util.Random;public class Tank implements Moveable{ @Override public void move() { System.out.println("Tank moving...."); try { Thread 阅读全文
posted @ 2011-06-21 11:12 飞翔荷兰人 阅读(4319) 评论(0) 推荐(2) 编辑
摘要: 自从上次project中使用struts1.1以后,对于开源的框架,就再也没有使用过。struts2开始就和webwork没有什么区别了,想了想还是看一下webwork吧,webwork是基于xwork的,而xwork是独立于webcontainer而存在的,那么就从xwork开始。xwork是构筑与command模式的。对于command模式的讲解,请看。http://www.dofactory.com/Patterns/PatternCommand.aspxxwork中command模式中的几个类命令的发出者:ActionProxy命令的传送者:ActionInvaction命令的执行者: 阅读全文
posted @ 2011-06-17 17:17 飞翔荷兰人 阅读(1045) 评论(0) 推荐(0) 编辑
摘要: 命令模式:定义:把一个请求或者操作封装在命令对象中。命令模式允许系统使用不同的请求把客户端参数化,对请求排队或者记录请求日志,可以提供命令的撤销和恢复功能。 Invoker类 被客户端调用,可以接受命令请求,设计命令队列,决定是否相应该请求,记录或撤销或重做命令请求,记录日志等等.publicclassInvoker{privateCommandcommand;publicvoidsetOrder(Commandcommand){this.command=command;}publicvoidExecuteCommand(){command.ExecuteCommand();}} Comman 阅读全文
posted @ 2011-06-17 15:54 飞翔荷兰人 阅读(1090) 评论(0) 推荐(0) 编辑
上一页 1 ··· 7 8 9 10 11 12 下一页

I Love Lina~