`
lastsoul
  • 浏览: 34529 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论
文章列表

状态模式

引用http://blog.csdn.net/hguisu/article/details/7557252

策略模式

定义 策略模式(Strategy)属于对象行为型设计模式,主要是定义一系列的算法,把这些算 法一个个封装成拥有共同接口的单独的类,并且使它们之间可以互换。策略模式使这些算法 在客户端调用它们的时候能够互不影响地变化。这里的算法不要狭义的理解为数据结构中算 法,可以理解为不同的业务处理方法。 适用性     1.许多相关的类仅仅是行为有异。“策略”提供了一种用多个行为中的一个行为来配置一个类的方法。     2.需要使用一个算法的不同变体。     3.算法使用客户不同的数据。可使用策略模式以避免暴露复杂的、与算法相关的数据结构。     4.一个类定义了多种行为,并且这些行为在这个类的 ...
两个超级大数相加,在JAVA中可以用BigDecimal实现(BigDecimal类型数据对位数不做限制,理论上可以任意大),也可以通过数组来实现。 BigDecimal能承受多大数,我没有做过验证,但是数组的方式肯定是没有限制的。 BigDecimal实现比较简单: BigDecimal bd1=new BigDecimal("99999999999999999999943567899999999999"); BigDecimal bd2=new BigDecimal("987654321"); System.out.println(bd1. ...
结论: 1、不管有木有出现异常,finally块中代码都会执行; 2、当try和catch中有return时,finally仍然会执行; 3、finally是在return后面的表达式运算后执行的(此时并没有返回运算后的值,而是先把要返回的值保存起来,管finally中的代码怎么样,返回的值都不会改变,任然是之前保存的值),所以函数返回值是在finally执行前确定的; 4、finally中最好不要包含return,如果try或cathch中和finaly同时有return.返回值不是try或catch中保存的返回值。 即执行的顺序就是try,cathch,finaly,try/cathch中的 ...
转自:http://www.cnblogs.com/jqyp/archive/2010/08/20/1805041.html JAVA的动态代理 代理模式 代理模式是常用的java设计模式,他的特征是代理类与委托类有同样的接口,代理类主要负责为委托类预处理消息、过滤消息、把消息转发给委托类,以及事后处理消息等。代理类与委托类之间通常会存在关联关系,一个代理类的对象与一个委托类的对象关联,代理类的对象本身并不真正实现服务,而是通过调用委托类的对象的相关方法,来提供特定的服务。 按照代理的创建时期,代理类可以分为两种。 静态代理:由程序员创建或特定工具自动生成源代码,再对其编译。在程序运行 ...
JDK对观察者模式的支持主要是通过Observable类和Observer接口。 继承Observable类表示“主题”角色,实现Observer接口表示观察者。 Observer的简单功能介绍 update(Observable o, Object arg) Observable唯一的方法,在被通知时被 Observable调用.o表示主题对象,arg表示通知信息。由此看出这是一个“推-拉结合”使 用的方式。arg不传值就是拉模式,传值就是推模式,当然也可以推一部分,拉一部分。 Observable的简单功能介绍: notifyObservers() 如果hasChanged ...

观察者模式

 
GoF说道:Observer模式的意图是“定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新”。 适用性     1.当一个抽象模型有两个方面,其中一个方面依赖于另一方面。       将这二者封装到独立的对象中以使它们可以各自独立地改变和复用。     2.当对一个对象的改变需要同时改变其它对象,而不知道具体有多少对象有待改变。     3.当一个对象必须通知其它对象,而它又不能假定其它对象是谁。换言之, 你不希望 这些对象是紧密耦合的。   参与者    .抽象主题(Subject)角色:主题角色把所有的观察者对象的引用 ...

备忘录模式

转载:http://blog.csdn.net/m13666368773/article/details/7709156
定义:用一个中介者对象封装一系列的对象交互,中介者使各对象不需要显示地相互作用,从而使耦合松散,而且可以独立地改变它们之间的交互。 类型:行为类模式 类图: 中介者模式的结构        中介者模式又称为调停者模式,从类图中看,共分为3部分: 抽象中介者:定义好同事类对象到中介者对象的接口,用于各个同事类之间的通信。一般包括一个或几个抽象的事件方法,并由子类去实现。 中介者实现类:从抽象中介者继承而来,实现抽象中介者中定义的事件方法。从一个同事类接收消息,然后通过消息影响其他同时类。 同事类:如果一个对象会影响其他的对象,同时也会被其他对象影响,那么这两个对象称为同事类。在类图中 ...

迭代器模式

定义:提供一种方法访问一个容器对象中各个元素,而又不暴露该对象的内部细节。 类图: 迭代器模式的结构 抽象容器:一般是一个接口,提供一个iterator()方法,例如java中的Collection接口,List接口,Set接口等。 具体容器: ...

命令模式

定义 将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤销的操作。 结构和说明 上面的类图,一开始我有一些疑问,不知Invoker为什么要存在。现在想通了,Clie ...

责任链模式

转自:《深入浅出设计模式》 一、 引言 初看责任链模式,心里不禁想起了一个以前听过的相声:看牙。说一个病人看牙的时候, 医生不小心把拔下的一个牙掉进了病人嗓子里。各个科室的医生推卸责任,搞得病人因此楼 上楼 ...
转自:http://lavasoft.blog.51cto.com/62575/51926/

jdk1.5 returnvalue

Callable接口: 返回结果并且可能抛出异常的任务。实现者定义了一个不带任何参数的叫做 call 的方法。 Callable 接口类似于 Runnable,两者都是为那些其实例可能被另一个线程执行的类设计的。但是 Runnable 不会返回结果,并且无 ...

jdk1.5线程池

一、API研究 线程池类为 java.util.concurrent.ThreadPoolExecutor,常用构造方法为: ThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAliveTime, TimeUnit unit, BlockingQueue<Runnable> workQueue, Rejected ...
Global site tag (gtag.js) - Google Analytics