一.模式概述模板方法(TemplateMethod)模式是一种非常简单而又经常使用的设计模式.先创建一个父类,把其中的一个或多个方法留给子类去实现,这实际上就是在使用模板模式.所谓的模板模式可以这样来理解:"在一个类中定义一个算法,但将此算法的某些细节留到子类中去实现.换句话说,基类是一个抽象类,那么你就是在使用一种简单形式的模板模式."更近一步可以这样来理解:"准备一个抽象类,将部分逻辑以具体方法的形式实现,然后申明一些抽象方法来迫使子类实现剩余的逻辑.
系统 2019-08-29 22:51:31 2286
c.适配器模式我的笔记本是港货,它的插头与我们常用的插座不一样,所有我出差的时候我必须带一个适配器,才能使用不同地方的插座。这是一个对适配器模式最经典的描述。当我们设计的系统要与其它系统交互,或者我们设计的模块要与其它模块交互时,这种交互可能是调用一个接口,或者交换一段数据,接受方常常因发送方对协议的变更而频繁变更。这种变更,可能是接受方来源的变更,比如原来是A系统,现在变成B系统了;也可能是接受方自身的代码变更,如原来的接口现在增加了一个参数。由于发送方
系统 2019-08-29 22:50:56 2286
Web开发中离不开js,写js免不了要经常查看那个变量是什么值,那个变量是什么数据类型,那个变量中含的字符串是什么,以前老是用alert这个函数,不是很方便,所以才有了写下面这个插件的想法。水平有限,写的代码可能会很乱,当然也可能会包含很多bug,毕竟呢,我的水平一般般,不是很好,js很多东西学的不是很好!!!!查看源码你可以得到下面的知识,以后就不要到处搜索了,直接copy!:1.类似jquery的ready函数了,从别处copy过来的了,你不需要为了这
系统 2019-08-29 22:43:36 2286
相信大家都使用过MSN,QQ这样的即时聊天类软件,对于它们的好友上线提示功能并不陌生吧?从屏幕右下角弹出一个小界面,慢慢上升,最后消失。我们能不能在自已的程序中也做出相同的功能呢?能!笔者现用JAVA和eclipse的SWT用户界面组件实现这个功能。什么是SWT呢?SWT原来是eclipse项目组为开发eclipseIDE所编写的图形界面API,运行时,其先判断本机是否有相同的界面元素,如果有则直接调用显示,如没有才进行模拟显示。其运行机制使速度比AWT,
系统 2019-08-29 22:27:01 2286
Java.sql包中的java.sql.Driver,jdbc.sql.Connection等提供给程序开发人员统一的开发接口,数据库提供商提供相应的实现,对程序开发人员来讲只要知道这些接口都有哪些方法就可以了。但我们可以深入一些看看到底这里面都做了那些事,同时也可以学习其中的编程模式(如Interface模式等)。1、Class.forName(Stringclassname)的源码为:publicfinalclassClassimplementsjav
系统 2019-08-29 22:24:51 2286
如果您喜欢这些文章,欢迎点击此处订阅本Blog
一.线程的基本概念1、入题:我们大家都知道,我们可以在一台计算机上同时聊天,看电影,下载视频等,完成上述任务的各个程序之间是完全相互独立的。但是他们在同一段时间内又同时处于运行状态。当然呢,它们在这一段时间内是分时使用计算机CPU时间的。只不过呢在CPU处理速度很快,划分的时间片段很短,所以给大家感觉上是多个程序在同时运行。2、进程:进程是程序的一次动态执行过程。这个过程包含了从程序代码从硬盘加载到内存、在内存中执行、执行结束等过程,实际上也就是进程的产生
系统 2019-08-12 09:29:59 2286
JUnit源码分析(三)——TemplateMethod模式在JUnit执行测试时,我们经常需要初始化一些环境供测试代码使用,比如数据库连接、mock对象等等,这些初始化代码应当在每一个测试之前执行并在测试方法运行后清理。在JUnit里面就是相应的setUp和tearDown方法。如果没有这两个方法,那么我们要在每个测试方法的代码内写上一大堆重复的初始化和清理代码,这是多么愚蠢的做法。那么JUnit是怎么让setUp和tearDown在测试执行前后被调用的
系统 2019-08-12 09:29:29 2286
大家好,今天给大家分享一款编辑器:sublimetext2我用过非常多编辑器,EditPlus、EmEditor、Notepad++、Notepad2、UltraEdit、Editra、Vim,还有包含netbeans,zendstudio,dreamweaver等。最后我遇见了sublimetext。sublime是我见过的最好的编辑器,大型IDE能实现的功能,用sublime装上对应插件,都能实现。它是一个小型编辑器,执行速度非常快。如今是鼓起勇气换掉
系统 2019-08-12 09:27:21 2286
在Oracle10g以前的版本,更改表空间名字是几乎不可能的事情,除非删除,重新创建,大费周章。Oracle10g新添加了一项更改表空间名字的功能,使得更改表空间名字瞬间即可完成。是个较为人性化的功能。SQL>SELECTfile_name,tablespace_nameFROMdba_data_files;FILE_NAMETABLESPACE--------------------------------------------------------
系统 2019-08-12 01:54:38 2286