- 浏览: 28909 次
- 性别:
- 来自: 北京
最新评论
-
cin_ie:
通俗易懂,此文甚好。
JAVA设计模式--建造者模式 -
asleep886:
...
JAVA设计模式--建造者模式 -
asleep886:
JAVA设计模式--建造者模式
文章列表
1、 任何程序中,相信输入和输出是我们熟悉程序的第一步,Linux也一样,在编写命令,脚本的时候,我们经常需要利用到输入输出, 不管是输入到控制台还是文件还是内容,输出到控制台、文件、内存等,都经常需要用到该功能,下面将会讲解Linux的输入输出
2、 Linux输出最常用的命令就是echo了,echo ‘aa’ 就是直接把一个字符串显示在控制台,也可以把输出定位到文件等,也有不同的参数来做不一样的输出。Echo的特殊字符\c:不换行,\f:进制,\t:跳格,\n:回车换行。为了让一些转义字符生效,需要在echo命令是加-e参数,如果echo –e ‘hellow \n world’,echo默 ...
1、Linux在指定的时间执行所需要执行的任务,无论生活与工作,平时经常遇到希望在某个时间执行某个任务,这时候就要使用到定时任务了,因为不可能人工的24小时围绕着电脑转,下面将会讲解下我对Linux定时任务的认识
2、crontab ...
import java.util.LinkedList;
import java.util.Stack;
/**
* 1、利用两个栈实现一个队列 思路:插入的时候直接插入第一个栈 移除的时候,如果第二个栈为空,则把第一个站所有元素放入第二个站 从第二个站移除一个元素即可
* 2、两个队列实现一个栈 思路:插入的时候,如果两个队列都为空则插入任意一个队列,否则插入非空的那个队列
* 移除的时候,把非空队列的元素全部弄到空队列里,把最后一个元素返回
* 3、利用一个队列实现一个栈 思路:利用递归的方式把队列反转,返回第一个
* 4、利用一个栈实现一个队列 思路: 利用递归的方式把数 ...
1、日期时间:now(),curdate(),CURTIME(),TO_DAYS(date) :返回一个日期的天数
2、mysql匹配也能用正则表达式,如查询用户名包含a,b的数据
select * from t_user where username REGEXP "[ab]"
"^ab","^a","^[ab]":第一是以ab开头的才会匹配,第二是以a开头才匹配,第三以a或b开头都匹配
3、数据的备份与恢复
备份表数据: select * into outfile 'd:\\123.sql' ...
未来五年程序员应当具备的十项技能
2010-01-04 20:37作为一名程序员,如果你想在这个领域内继续向前进步或者在当前的经济形势下保持不被炒鱿鱼,那么你就决不应当自满自足,你需要继续学习。近日,著名IT评论员Justin James在他的博客中列出了未来五年程序员应当具备的十项技能,如果照此实践,你未来的工作前景一定一片光明。
当前的经济形势下,很多程序员将目光聚焦在短期内的工作形式上,但是你仍然要抽出时间和精力学习新的技能。以下是作为程序员应当即刻学习的十项技能,以确保在未来五年内你的简历上有真材实料。当然这个名单很难做到详尽而没有遗漏,有些领域没有涉及到(比如大型机开发者)。然而,对 ...
访问者模式一般被用户一些数据结构稳定的场合,数据对象稳定,而实际对它的操作是不稳定的,他可以接受不同的对象而做出不同的反应,对与稳定的数据结构,它的功能和方法也就稳定,所以就把它抽象出来,抽取出来,而对于访问它的对象是经常改变的,传递不同的实际对象也就得到不同的运行效果,多态的体现
访问者模式的参与对象:
抽象节点:也就是稳定的数据结构对象,同时也声明具体数据结构对象的操作,操作方法接收访问者
具体节点:具体稳定数据结构的实现,接受访问者,调用访问者。
抽象访问者:对与不同的具体节点,做出相应的反应,具体节点是稳定的,从而访问者的一般具体操作也就相对稳定
...
当做一种事情的步骤是必不可少的。也就是说做这种事情,所有的步骤是不会少的。但是这些事情的具体做法的步骤实现又是不一样的。 由每个个具体的对象去实现 。
比如做一道菜,放盐,油等这些都是不可少的,但是每个人放的量又不一样。
有的时候我们做的时候就可能会因为一件事情的步骤太多而忘记了做某个步骤,造成后面做出来的东西是不能用的。
建造者模式:它的原理就是像上面那样,为了避免忘记做某个步骤,我们把这些步骤都抽象出来到一个类里面,
然后每个具体的实现都不得不去实现这些步骤(也就是一个方法一样吧),具体方法的实现是由每个具体类自己去
做的,如果就是这样,我们就会发现这时候,等于就是这个吃菜的人吧, ...
所谓开放封闭,就是说一些东西,好比类,模块,函数等,它们不可以改变,但是可以拓展。
两个特征: 对于扩展是开放的,对于修改是封闭的。
对于软件做到容易维护双不容易出问题,应该多做扩展,少做修改。
面向抽象常常是能解决很多变化的方式,我们在增加新的需求的时候,并不要去改变已有的类结构和类,只要增加新的类就能达到我们的目的。
但是抽象要做得合理并不是说抽象越多越好,过度抽像也会使程序的可读性变低
现实生活中我们现在拥有太多的各种各样的产品,它们的功能很多各各样,但是我们同时间也会发现在一个产品当中
的每种功能,其实生活当中还是有对应一种功能的产品,而且可能这功能单一的产品比那功能多种多样的产品还要贵
呢,所以说有的时候一种东西功能单一其实更加好用,比如手机有照相,上网,摄像等功能,但是它的这些功能怎么
能和数码相机,电脑,摄像机相比呢,这也好像就是编程当中的单一职则模式。
对于一个类我们一般就写一种功能,从而引起类型变化的原因也就只有一个,不会有好多,当我们把太多的逻辑放在一
个类里面,这个类根本就是无法阅读的,无法修改,复用等。
所以所谓单一职则就是说引起类变化的原因只有一个,不会 ...
当有一种变化不停的改变它的实现算法的时候,我们就考虑用策略模式
模式目的就是为了让客户使用方使用尽可能少的有关程序的类,知道尽可能少的
实现,策略模式
先把所有的东西都抽像出来,每个具体的算法去实现它,客户端呢,为了让它不
知道服务端的情况,我们使用另外一个类去关联抽像的一个引用,客户只要传来
对某个算法的一个信号就可以的,类结构如下:
Context----关联抽象-----SuanFa(抽象算法)
- -
...
主要目标理解JDK动态代理
1、为什么要使用代理
实际程序中,有许多程序的共同操作和实际业务没有关系,但是我们有不得不每次把这些相同的代码给他加上去
显然我们可以把这样的操作当成一个切面,在执行方法之前和之后去调用这样一段特殊的代码,从而实现需要的
功能。
*日志处理:比如操作日志可能只是需要保存执行的方法、时间等信息,所以这样的功能应当被当做成一个切面
在执行方法的时候或者执行完之后加上对该方法的执行日志
*权限处理:只执行某个方法的时候,可能需要检查当前用户是否有权限执行改操作,可以把权限检测当当成一个
切面,在 ...
1、我们知道,有了JAVA的反射给动态加载带来的许多方便之处,JAVA动态加载一般使用两种方式,一个是利用Class.forName(String className),Class.forname(String className,boolean initalize),这两个方法都是加载一个className名称的类,区别在于第二个 ...
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Ajax Auto Complete</title>
<style type="text/css">
.mouseOut {
background: #708090;
color: #FFFAFA;
}
.mouseOver {
backgrou ...
例子一:用户检测,在输入用户名称的时候响应AJAX,检查是否存在用户,然后渲染页面
checkUser.jsp如下:页面的输入框值改变响应请求检验用户
<%@ page language="java" pageEncoding="utf-8"%>
<html>
<head>
<script type="text/javascript">
var xmlhttp;
function checkUser() {
clear();
...
1、对与处理服务器的相应信息,xmlhttpRequest提供了两个方法.如下:
Xml.responseText:作为字符串进行返回,使用alert()会发现处理的是返回信息的String
Xml.responseXML:做为XML返回,使用alert()会发现是一个Object对象。
2、用reponseText接收的字符串大部门的时候来和innerHTML方法结合使用,得到比较动态的页面内容,比如在页面产生事件,然后响应请求,服务器组织HTML返回,在调用HTML的innserHTML设置DIV等的HTML值。
3、当使用responseXML的时候,使用它,响应信息必须设置为 ...