自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

我是李香兰小朋友的博客

会编程的足球狗

  • 博客(67)
  • 资源 (2)
  • 收藏
  • 关注

原创 备忘录模式

结构:源发器类(coriginator)           备忘录类(memento)           负责人类(careTake)核心:就是保存某个对象内部状态的拷贝,这样以后就可以将该对象恢复到原先状态场景:棋类游戏的悔棋;普通软件中的撤销操作;数据库回滚操作;ps中的历史记录Emp.java(源发器类)public class Emp { private St

2017-08-18 08:50:49 281

原创 观察者模式(广播机制)

核心:主要用户1:N的通知。当一个对象(目标对象或observable【消息发布】)状态变化,他需要及时告知一系列对象(观察对象,observer【消息订阅】),令他们做出响应通知观察者的方式:             1:推:每次都会把通知以广播的方式发送给所有的观察者,所有观察者只能被动接收             2:拉:观察者只要知道有情况即可。至于什么时候获取内容,获取什么内

2017-08-18 08:50:28 942

原创 状态模式

核心:用于解决系统中复杂对象的状态转换以及不同状态下行为的封装问题结构:          context环境类:环境类中维护一个state对象,也是定义当前状态          state抽象状态类:           concretestate具体状态类:每个类封装了一个状态对应的行为场景:银行系统中账号状态的管理;OA系统中公文状态的管理,酒店系统中房间状态的管理;线

2017-08-17 11:46:40 301

原创 模板方法模式

核心:处理代码步骤中定义好,具体实现延迟到子类中定义什么时候使用:实现一个算法时,整体步骤很固定,但是某些部分易变,但是易变的可以抽象出来,使子类实现场景:数据库访问封装;Junit单元测试;hibernate中的模板;spring jdbc templateBankTemplateMethod.javapublic abstract class BankTemplateMetho

2017-08-17 11:34:47 239

原创 策略模式

本质:分离算法,选择实现场景javase中GUI编程中,布局管理器;spring框架中,resoyrce接口,资源访问策略;javax.servlet.http.httpservlet#service()例子:比如商城打折,老用户新商品打9折,老用户老商品打8折,新用户新商品减10元,新用户老商品减20元Strategy.java(策略类)public interface Stra

2017-08-17 11:25:44 258

原创 解释器模式和访问者模式(使用较少)

解释器模式:介绍:当我们开发新的语言时,可以考虑使用解释器模式场景:EL表达式的处理;正则表达式解释器;SQL语法解释器;数学表达式解释器访问者模式:定义:表示一个作用于某个对象结构中的各元素的操作,它使得我们可以再不改变个元素的类前提下定义作用于这些元素的新操作场景:Xml文档解析器设计;编译器的设计;复杂集合对象的处理了解应用场景即可,当然深入学习更好,没有坏处

2017-08-17 10:58:16 250

原创 命令者模式(使用较少)

场景:Struct2中,action的整个调用过程;数据库事务机制底层实现;命令的撤销和恢复Receiver.java(真正命令的执行者)public class Receiver { public void action(){ System.out.println("Receiver.action()"); }}Command.javapublic interf

2017-08-17 10:48:05 292

原创 中介模式

场景:mvc模式(其中的c,控制器就是一个中介者对象,m,v都和他打交道);java.lang.reflect.Method#invoke()例子:比如一个公司有市场部,开发部,财务部,之间的沟通就是通过总经理(中介者)来相互调用Mediator.java(中介者接口)public interface Mediator { void register(String dname,D

2017-08-17 10:38:11 218

原创 迭代器模式

场景:提供一种可以遍历聚合对象的方式,又称为cursor模式          聚合对象:存储数据          迭代器:遍历数据MyIterator.java(自定义迭代器接口)public interface MyIterator { void first(); //将游标指向第一个元素 void next(); //将游标指向下一个元素 boolean hasNex

2017-08-17 10:05:51 174

原创 责任链模式

定义:将能够处理同一类请求的对象连成一条链,所提交的请求沿链传递,能处理的自己处理,不能处理的传递给下一个对象。场景:java中异常机制try{}catch{};js中时间的冒泡和捕获机制,java语言中事件采取观察者模式;servlet开发中,过滤器的链处理;struct2拦截器的调用也是典型的责任链模式例子:比如请假流程,就是一层一层的传递给下一个领导,就是链状结构。Leader(

2017-08-17 09:57:42 151

原创 享元模式

场景:如果有很多个完全相同或者相似的对象,我们可以通过享元模式,节省内存。核心:享元模式以共享方式高效的支持大量细粒度对象重用应用场景;任何池,String类例子:比如围棋中,有黑棋白棋,同种颜色的棋子,只有坐标不一样,其他都一样,这是就可以用享元模式Coordinate.java(外部状态)public class Coordinate { private int x,y;

2017-08-17 09:35:46 173

原创 外观模式

迪米特法则(最少知识原则):一个软件实体应当尽可能少的与实体发生作用。例子:比如公司注册,需要很多过程,自己去各个政府机构签文档,就很多麻烦,这是就需要一个对象,这个对象有注册公司的所有方法,我们就只需调用这个对象的注册方法便完成需求工商局public interface 工商局 { void checkName(); //核名}class 海淀区工商局 implement

2017-08-17 09:21:26 182

原创 装饰者模式

ICar.javapublic interface ICar { void move();}//ConcreteComponent 具体构件角色(真实对象)class Car implements ICar { @Override public void move() { System.out.println("陆地上跑!"); }}//Decorator装饰角色c

2017-08-16 10:49:15 221

原创 组合模式

使用组合模式的场景:把部分和整体的关系用树状结构来表示,从而是客户端可以使用统一的方式处理,部分对象和整体对象核心:抽象构件角色:定义好叶子和容器构件的共同点。叶子构件角色:无叶子节点。容器构件角色:有容器特征,可以包含子节点。以杀毒软件为例:AbstracFile.java(接口)//抽象构建public interface AbstractFile { vo

2017-08-16 10:39:51 181

原创 桥接模式

Brand.java(品牌接口类)public interface Brand { void sale();}class Lenovo implements Brand { @Override public void sale() { System.out.println("销售联想电脑"); } }class Dell implements Brand {

2017-08-16 10:26:49 279

原创 代理模式之动态代理

Star(接口)public interface Star { /** * 面谈 */ void confer(); /** * 签合同 */ void signContract(); /** * 订票 */ void bookTicket(); /** * 唱歌 */ void sing(); /** * 收钱 */ void co

2017-08-16 10:16:05 170

原创 代理模式之静态代理

代理模式: 应用场景:安全代理:屏蔽对真实角色的直接访问远程代理:通过代理类远程方法调用(RMI)延迟加载:先加载轻量级的代理对象,真正需要再加载真实对象分类:静态代理(静态定义代理类)          动态代理(动态生成代理类):JDK自带的动态代理,Javaassist字节码操作实现,CGLIB,ASM Star.java(接口类)public int

2017-08-16 10:05:10 176

原创 适配器模式

Adaptee.java(被适配的类,相当于例子中的,PS/2键盘)public class Adaptee { public void request(){ System.out.println("可以完成客户请求的需要的功能!"); }}Adapter.java(适配器)public class Adapter extends Adaptee implemen

2017-08-16 09:49:42 167

原创 (十三)解析算术表达式

栈:先进后出中缀表达式:A+B*C后缀表达式:ABC*+1.中缀表达式转后缀表达式StackX.java(构造一个栈)package JavaAppInFix;/** * 构造一个栈 * @author qingshuang * */public class StackX { private char[] stackArray; priv

2017-04-03 16:45:44 519

原创 (十二)优先级队列

优先级队列介绍PriorityQ.java(优先级队列类)package sortedListApp;/** * * 优先级队列 * @author qingshuang * */public class PriorityQ { private long[] queArray; private int maxSize; pr

2017-04-03 11:35:15 325

原创 (十一)队列

队列的特点先进先出Queue.java(队列类)package sortedListApp;/** * 队列 * @author qingshuang * */public class Queue { private long[] queArray; private int maxSize;//数组的大小 private int front;

2017-04-03 11:30:58 213

原创 (十)栈应用实例

1.单词逆序StackX.java(栈)package JavaApp_StackRB;public class StackX { private int maxSize; private char[] stackArray; private int top; public StackX(int max){ maxSize=max; st

2017-04-02 17:32:57 283

原创 (九)数据结构—栈

栈和队列1.通常情况下作为程序员的工具来运用2.受限访问3.更加抽象(通过接口进行定义)栈就是一组记录,底层用数组或者链表实现,变现形式为先进先出图片表现形式java代码表示栈package sortedListApp;/** * 栈的实现 * @author qingshuang * */public class StackX

2017-04-02 15:39:06 337

原创 (八)简单排序-对象的插入排序(person)

对象的插入排序(对person类型对象进行插入排序)person.java(对象类)package JavaApp_ObjectSort;public class Person { private String lastName; private String firstName; private int age; public Person(Strin

2017-03-31 11:55:05 310

原创 (七)简单排序-插入排序

插入排序ArrayIns.java(插入排序)package JavaApp_inserSort;public class ArrayIns { private long[] a; private int nElems; public ArrayIns(int max) { a = new long[max]; nElems = 0; } publ

2017-03-31 10:33:12 295

原创 (六)简单排序-选择排序

选择排序数组类package JavaApp_SelectsSort;public class ArraySel { private long[] a; private int nElems; public ArraySel(int max){ a=new long[max]; nElems=0; } public void ins

2017-03-31 09:25:18 263

原创 (五)简单排序-冒泡排序

冒泡排序ArrayBub.javapackage JavaApp_bubbleSort;/** * 冒泡排序 * * @author qingshuang * */public class ArrayBub { private long[] a; private int nElems; public ArrayBub(int max) {// 构造函数

2017-03-30 15:53:36 401

原创 (四)存储对象的数组和大O表示法

存储对象数组person.java(对象类)package JavaAppClassDataArray;public class Person { private String lastName; private String firstName; private int age; public Person(String last, String first, in

2017-03-30 11:27:23 203

原创 (三)有序数组和二分查找法

有序数组二分查找法比较次数数据量                 所需比较的次数10                              4100                            71000                         1010000                        14100000

2017-03-28 11:10:30 584

原创 (二)数组基础知识

一:老式面向过程的数组应用package JavaApp_Array;/** * 老式面向过程的数组应用 * * @author qingshuang * */public class ArrayApp { public static void main(String[] args) { long[] arr;// 声明数组 arr = new long[100

2017-03-27 21:53:08 208

原创 (一)数据结构与算法概述

数据结构:对计算机内存中的数据的一种安排。算法:对结构中数据进行各种处理应用方面:        1.现实世界数据存储        2.程序员的工具        3.现实世界的建模数据结构                     优点                                缺点数组                

2017-03-25 15:23:07 371

原创 Java Web day(8)之EL拓展对象JSTL及mcv,javaweb三层框架简介

JSTL1. jstl的概述  * apache的东西,依赖EL  * 使用jstl需要导入jstl1.2.jar  * 四大库:    > core:核心库,重点    > fmt:格式化:日期、数字    > sql:过时    > xml:过时2. 导入标签库  * jar包  * 在jsp页面中:-----------

2016-12-02 17:35:57 441

原创 Java Web day(7)之jsp详解

JSP指令JSP指令分类  JSP有三大指令:  * page指令  * include指令  * taglib指令  在JSP中没有任何指令是必须的!!!  但基本上每个JSP都是使用page指令!  ==========================page指令page指令是最为常用的指令!1. pa

2016-12-02 17:25:37 293

原创 Java Web day(6)之jsp&Cookie&HttpSession基础

JSP基础1. jsp的作用:  * Servlet:    > 缺点:不适合设置html响应体,需要大量的response.getWriter().print("")    > 优点:动态资源,可以编程。  * html:    > 缺点:html是静态页面,不能包含动态信息    > 优点:不用为输出html标签而发愁  * jsp(java serve

2016-12-02 14:56:24 534

原创 JavaScript入门(三)

1、案例一:在末尾添加节点第一步:获取到ul标签第二步:创建li标签document.createElement("标签名称")方法第三步:创建文本document.createTextNode("文本内容");第四步:把文本添加到li下面使用 appendChild方法第五步:把里添加到ul末尾使用 appendChild方法2、元素对象(el

2016-11-30 17:23:04 368

原创 JavaScript入门(二)

1、js的String对象** 创建String对象*** var str = "abc";** 方法和属性(文档)*** 属性 length:字符串的长度*** 方法(1)与html相关的方法- bold():加粗- fontcolor(): 设置字符串的颜色- fontsize(): 设置字体的大小- link(): 将字符串显示成超

2016-11-30 16:49:06 400

原创 JavaScript入门(一)

1、javascript的简介* 是基于对象和事件驱动的语言,应用与客户端。- 基于对象:** 提供好了很多对象,可以直接拿过来使用- 事件驱动:** html做网站静态效果,javascript动态效果- 客户端:专门指的是浏览器* js的特点(1)交互性- 信息的动态交互(2)安全性- js不能访问本地磁盘的文件(3)

2016-11-30 16:09:03 157

原创 css基础入门

CSS1、css的简介* css: 层叠样式表** 层叠:一层一层的** 样式表:很多的属性和属性值* 是页面显示效果更加好* CSS将网页内容和显示样式进行分离,提高了显示功能。2、css和html的结合方式(四种结合方式)(1)在每个html标签上面都有一个属性 style,把css和html结合在一起- (2)使用h

2016-11-30 15:34:58 168

原创 html基础入门

day011、html的简介* 什么是html?- HyperText Markup Language:超文本标记语言,网页语言** 超文本:超出文本的范畴,使用html可以轻松实现这样操作** 标记:html所有的操作都是通过标记实现的,标记就是标签,** 网页语言:* 第一个html程序。- 创建java文件.java** 先编译,然后再运行(jvm

2016-11-30 15:08:09 267

原创 Java Web day(5)之Response 与Request详细介绍

服务器处理请求的流程:  服务器每次收到请求时,都会为这个请求开辟一个新的线程。  服务器会把客户端的请求数据封装到request对象中,request就是请求数据的载体!(袋子)  服务器还会创建response对象,这个对象与客户端连接在一起,它可以用来向客户端发送响应。(手机)------------------response:其类型为HttpS

2016-11-06 23:50:10 566

nginx.conf

nginx的配置文件,中文注释解释

2018-08-24

Java连接数据库

适用于任何数据库

2016-08-10

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除