- 博客(16)
- 收藏
- 关注
转载 设计模式——模板方法模式
模板方法模式定义:在一个方法中定义一个算法的骨架,将一些步骤延迟到子类中。模板方法使得子类可以在不改变算法结构的情况下,重新定义算法中的某些步骤。 将这个定义进行拆分解释,来建立对于模板方法的一个初步概念。定义中说在一个方法中定义一个算法的骨架,通常我们写的算法都有一个入口函数,在这个入口函数中我们可能需要调用很多其他的方法来完整这个算法(毕竟将所有的代码写在一个大方法里面...
2014-09-20 16:15:00
156
转载 设计模式——外观模式
外观模式定义:提供一个统一的接口,用来访问子系统中的一群接口。外观定义了一个高层接口,让子系统更容易使用。 外观模式可以用来简化接口,之所以称其为“外观”,是因为一般外观是用来展现给用户的,所以一般外观都做得比较简单时尚,用来隐藏后面复杂的逻辑。 比如很多电脑都有“一键影音”功能,当按下“一键影音”键的时候,电脑需要调整音效,音量,屏幕亮度等等。这里可能会让人联想...
2014-09-20 13:11:00
203
转载 设计模式——适配器模式
适配器模式定义:将一个类的接口,转换成客户期望的另一个接口。适配器让原本接口不兼容的类可以合作无间。 我们首先需要明白什么是适配器,如上图是电源插座适配器。通过这一个适配器可以让三孔插座“插到”二孔插座上。而在实际编码中,如果两个接口之间能搭配使用,第一种方法就是改变其中一方的源码,但是很多时候这需要很大的工作量,这是我们可以在这两个接口之间加一个适配器,这样就可以相对来...
2014-09-20 13:03:00
230
转载 设计模式——命令模式
命令模式定义:将“请求”封装成对象,以便使用不同的请求、队列或者日志来参数化其他对象。命令模式也支持可撤销的操作。 首先我们的集中点在“命令”两个字身上。命令的汉语解释为:命令(令)是国家行政机关及其领导人发布的指挥性和强制性的公文。说白了命令的发生需要发令者和执行者。而且发令者和执行者各司其职,发令者只负责发令,甚至他自己都可以不知道这条命令具体该如何执行,而执行者只负责...
2014-09-07 15:54:00
166
转载 设计模式——工厂模式
工厂模式有两种类型:工厂方法模式和抽象工厂模式工厂方法模式定义:定义了一个创建对象的接口(这里的接口并不是单单是指java中的interface),但由子类决定实例化的类是哪一个。工厂方法让类把实例化推迟到子类中。抽象工厂模式定义:提供一个接口(这里的接口并不是单单是指java中的interface),用于创建相关或依赖对象的家族,而不需要明确指定具体的类。 不管工厂模...
2014-08-17 21:46:00
107
转载 Java学习笔记——动态代理
所谓动态,也就是说这个东西是可变的,或者说不是一生下来就有的。提到动态就不得不说静态,静态代理,个人觉得是指一个代理在程序中是事先写好的,不能变的,就像上一篇"Java学习笔记——RMI"中的远程代理,其中客户端服务对象就是一个远程服务对象的代理,这个代理可以使得客户在操作时感觉像在操作本地对象一样,远程对象对于客户是透明的。我们可以看出这里的远程代理,是在程序中事先写好的,而本节我...
2014-06-05 16:07:00
144
转载 Java学习随笔——RMI
RMI(Remote Method Invocation)远程方法注入,用来实现远程方法调用,是实现分布式技术的一种方法。RMI提供了客户辅助对象和服务辅助对象,为客户辅助对象创建了和服务对象相同的方法。其好处在于我们不必亲自写任何网络或I/O代码。客户程序在调用远程方法时就和调用本地方法一样(感觉上)。 RMI分为客户端和服务端。 服务端的构建步骤如下:扩展远程...
2014-06-03 16:34:00
199
转载 数据结构与算法——排序算法
常见排序算法主要有:插入排序(直接插入排序、希尔排序)选择排序(直接选择排序、堆排序)交换排序(冒泡排序、快速排序)归并排序基数排序外部排序一.直接插入排序算法思想:在一个待排序列中,从第二个元素开始,依次进行排序,每次都将待排序元素从后往前,依次与前面的元素进行比较,从而将带排序元素移动到一个合适的位置,直到最后一个待排序元素移动到合适位置,则排...
2014-05-20 20:57:00
224
转载 设计模式——装饰者模式
本系列记录个人在“设计模式”上的学习,文中错误之处,恳请读者指正。装饰者模式:动态地将责任附加到对象上。如要扩展功能,装饰者提供了比继承更有弹性的替代方案。设计原则:好的代码设计应该免于修改,又易于扩展。 扩展和修改实际上并不矛盾,扩展的是功能,修改的是代码,而功能的增加不一定要通过修改原来的代码来实现,当然很多时候直接修改是一种最简单,最容易想到的方法,有时候这也是...
2014-05-10 20:44:00
105
转载 Struts2中使用execAndWait后,在 Action中调用getXXX()方法报告java.lang.NullPointerException异常的原因和解决方法...
使用Struts2 编写页面,遇到一个要长时间运行的接口,因此增加了一个execAndWait ,结果在 Action 中调用 getContext()的时候报告异常1 ActionContext context = ActionContext.getContext();2 ServletContext servletContext = (ServletContext) c...
2014-05-10 11:48:00
196
转载 为什么struts2 ajax 方法执行两次
struts2中使用json插件执行ajax处理时,如果方法名是get方法的时候,方法会莫名其妙的执行两次。原因:struts2 中JSON的原理是在ACTION中的get方法都会序列化,所以前面是get的方法只要没指定不序列化,都会执行解决方法Action中的业务方法前别加get 或者 set(属性的get set 除外)用@JSON(serialize=...
2014-04-27 19:33:00
139
转载 设计模式——观察者模式
观察者模式:定义了对象之间一对多的依赖,这样一来,当一个对象改变状态时,它的所有依赖者都会收到通知并自动更新。(ps:其实本质上并不是自动更新,还是由主体来触发更新的)设计原则:为了交互对象之间的松耦合设计而努力。 1 package pattern.observer; 2 3 /** 4 * 主体公共接口 5 * @author CS_Xia...
2014-04-25 20:44:00
112
转载 Static Class (静态类)
一般情况下是不可以用static修饰类的。如果一定要用static修饰类的话,通常static修饰的是匿名内部类。在一个类中创建另外一个类,叫做成员内部类。这个成员内部类可以静态的(利用static关键字修饰),也可以是非静态的。由于静态的内部类在定义、使用的时候会有种种的限制。所以在实际工作中用到的并不多。在开发过程中,内部类中使用的最多的还是非静态地成员内部类。不过在特定的情...
2014-04-09 21:32:00
133
转载 设计模式——策略模式
策略模式:定义算法族,分别封装起来,让他们之间可以互相替换,此模式让算法的变化独立于使用算法的用户。以一个模拟鸭子的游戏来举例说明:需求说明 要求一个池塘里面有很多鸭子,我们可以灵活的添加各种鸭子,这些鸭子有很多属于自己的特征,比如叫声、飞翔等等,总之就是一个池塘里面游满了各种各样的鸭子,而我们的程序可以灵活的添加鸭子到这些池塘,同时这些鸭子...
2014-04-01 15:09:00
93
转载 读取Jar包中的资源问题探究
最近在写一个可执行jar的程序,程序中包含了2个资源包,一个是images,一个是files。问题来了,在Eclipse里开发的时候,当用File类来获取files下面的文件时,没有任何问题。但是当程序导出为Runnable Jar时,运行程序时抛出异常,File not found。我们来一探究竟。首先是我的工程目录结构:程序中访问images下的图片代码:setI...
2014-01-13 20:11:00
107
转载 Java获取昨天的时间
Calendar cal = Calendar.getInstance();cal.add(Calendar.DATE, -1);String yesterday = new SimpleDateFormat( "yyyy-MM-dd ").format(cal.getTime());System.out.println(yesterday);转载于:...
2013-12-03 17:34:00
109
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅