摘要: 装饰模式:动态地给一个对象增加一些额外的职责,就增加的功能来说,Decorator模式相比生成子类更加灵活。装饰模式可以在不创造更多的子类的模式下,将对象的功能加以扩展。装饰模式与类继承的区别:1) 装饰模式是一种动态行为,对已经存在类进行随意组合,而类的继承是一种静态的行为,一个类定义成什么样的,该类的对象便具有什么样的功能,无法动态的改变。2) 装饰模式扩展的是对象的功能,不需要增加类的数量,而类继承扩展是类的功能,在继承的关系中,如果我们想增加一个对象的功能,我们只能通过继承关系,在子类中增加两个方法。3) 装饰模式是在不改变原类文件和使用继承的情况下,动态的扩展一个对象的功能,它是通过 阅读全文
posted @ 2013-03-18 14:38 何长春 阅读(305) 评论(0) 推荐(0) 编辑
摘要: 适配器模式:将一类的接口转换成客户希望的另外一个接口,Adapter模式使得原本由于接口不兼容而不能一起工作那些类可以一起工作。• 你想使用一个已经存在的类,而它的接口不符合你的需求。• 你想创建一个可以复用的类,该类可以与其他不相关的类或不可预见的类(即那些接口可能不一定兼容的类)协同工作。•(仅适用于对象Adapter)你想使用一些已经存在的子类,但是不可能对每一个都进行子类化以匹配它们的接口。对象适配器可以适配它的父类接口。类适配器:package com.qinsoft.design;/** * 适配器模式:结构型 */public class Adapter{ public s... 阅读全文
posted @ 2013-03-18 14:15 何长春 阅读(157) 评论(0) 推荐(0) 编辑
摘要: 1、在myeclipse中新建web项目,点击右键选择Myeclipse-->添加sping框架支持3、添加hibernate框架支持3、添加struts框架支持4、修改一下web.xml <context-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:applicationContext.xml</param-value> </context-param> <listener> <liste 阅读全文
posted @ 2013-03-01 17:38 何长春 阅读(329) 评论(0) 推荐(0) 编辑
摘要: package com.smart.test;/** * 最小二乘法计算类 */public class LeastSquareMethod{ private double[] x; private double[] y; private double[] weight; private int m; private double[] coefficient; public LeastSquareMethod(double[] x, double[] y, int m) { if (x == null || y == null || x.... 阅读全文
posted @ 2013-02-26 17:07 何长春 阅读(245) 评论(0) 推荐(0) 编辑
摘要: package com.smart.test;public class Algorithm{ /** * 一元线性回归分析 * * @param x[n] 存放自变量x的n个取值 * @param y[n] 存放与自变量x的n个取值相对应的随机变量y的观察值 * @param n 观察点数 * @param a[2] a(0) 返回回归系数b ,a(1)返回回归系数a */ public static void lineareEquation(double[] x, double[] y, int n, doubl... 阅读全文
posted @ 2013-02-26 17:05 何长春 阅读(229) 评论(0) 推荐(0) 编辑
摘要: /** * 队列--链式存储 **/#include <stdlib.h>#include <iostream.h>#define OK 1#define ERROR 0typedef struct node { //链式队列的结点结构 int item; //队列的数据元素类型 struct node *next; //指向后继结点的指针}NODE;typedef struct queue{ //链式队列 NODE *front; //队头指针 NODE *rear; ... 阅读全文
posted @ 2013-02-23 17:58 何长春 阅读(175) 评论(0) 推荐(0) 编辑
摘要: /** * 队列--顺序存储 **/#include <stdlib.h>#include <iostream.h>#define OK 1#define ERROR 0//队列的最大数据元素数目#define MAX_QUEUE 10 typedef struct queue{ //假设当数组只剩下一个单元时认为队满 int item[MAX_QUEUE]; //存放队列中数据元素的存储单元 int front,rear; //队头指针、队尾指针}QUEUE;//初始化队列Q void... 阅读全文
posted @ 2013-02-23 17:57 何长春 阅读(195) 评论(0) 推荐(0) 编辑
摘要: /** * 栈--链式存储 **/#include <stdlib.h>#include <iostream.h>#define OK 1#define ERROR 0typedef struct node { //链栈的结点结构 int item; //栈的数据元素类型 struct node *next; //指向后继结点的指针}NODE; typedef struct stack{ NODE *top;}STACK; //初始化栈S void InitStack(STACK *S){ S->top=NULL;}//入栈 voi... 阅读全文
posted @ 2013-02-23 17:56 何长春 阅读(149) 评论(0) 推荐(0) 编辑
摘要: /** * 栈--顺序存储 **/#include <stdlib.h>#include <iostream.h>#define OK 1#define ERROR 0//栈的最大数据元素数目#define MAX_STACK 10 typedef struct stack{ int item[MAX_STACK]; //存放栈中数据元素的存储单元 int top;//栈顶指针}STACK;//初始化栈S void InItStack(STACK *S) { S->top=-1; } //入栈 void Push(STACK *S,int i... 阅读全文
posted @ 2013-02-23 17:55 何长春 阅读(164) 评论(0) 推荐(0) 编辑
摘要: /** * 单链表 **/#include <stdlib.h>#include <iostream.h>#define OK 1#define ERROR 0//结点类型typedef struct node{ int item; struct node *next;}NODE;//链表类型typedef struct{ NODE *head;}LINK_LIST;//初始化单链表int init(LINK_LIST *L){ L->head=(NODE*)malloc(sizeof(NODE)); //为头结点分配存储单元 if (L->head) .. 阅读全文
posted @ 2013-02-23 17:53 何长春 阅读(159) 评论(0) 推荐(0) 编辑