自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

HelenLi的博客

温故而知新

  • 博客(18)
  • 收藏
  • 关注

原创 详解设计模式——策略模式

策略模式(Strategy)定义一系列的算法,把它们一个个封装起来,并且使它们可相互替换。本模式使得算法可独立于使用它的客户而变化。类图:1.Strategy:策略接口,用来约束一系列具体的策略算法。Context使用这个接口来调用具体的策略,实现定义的策略。2.ConcreteStrategy:具体的策略实现,也就是具体的算法实现。3.Context:上下午,负责与具体的策略

2017-05-27 10:51:00 217

原创 详解设计模式——观察者模式

观察者模式(Observer)对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。类图:1.抽象主题(Subject)角色:把所有对观察者对象的引用保存在一个集合中,每个抽象主题角色都可以有任意数量的观察者。抽象主题提供一个接口,可以增加和删除观察者角色。一般用一个抽象类和接口来实现。2.抽象观察者(Observer)角色:为所有具体

2017-05-27 10:50:23 312

原创 详解设计模式——装饰器模式

装饰器模式(Decorator)对客户透明的方式动态地给一个对象附加上更多的责任,同时又不改变其结构。装饰模式可以在不使用创造更多子类的情况下,将对象的功能加以扩展。类图:1.抽象构件(Component)角色:给出一个抽象接口,以规范准备接收附加责任的对象。2.具体构件(ConcreteComponent)角色:定义一个将要接收附加责任的类。3.装饰(Decorator)角色:持

2017-05-27 10:49:38 355

原创 详解设计模式——外观模式

外观模式(Facade)为子系统中的一组接口提供一个一致的界面,Facade模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。隐藏系统的复杂性,并向客户端提供了一个客户端可以访问系统的接口。降低访问复杂系统的内部子系统时的复杂度。类图:在客户端和复杂系统之间再加一层,将调用顺序、依赖关系等处理好。举个例子:我们经常用的电脑,开机其实是个非常复杂的过程,而我们只需要按开机按钮就

2017-05-26 12:11:06 294

原创 详解设计模式——适配器模式

适配器模式(Adapter Class/Object)是指将一个接口转换成客户端希望的另外一个接口,该模式使得原本不兼容的类可以一起工作。举个例子:macbook pro有一个HDMI接口,一条HDMI接口的数据线,现在要外接显示器,而显示器只有VGI接口,我们需要一个HDMI-VGI转换器,这个转换器其实起到的作用就是适配器,让两个不兼容的接口可以一起工作。类图:适配器有4种角色

2017-05-26 12:09:28 338

原创 详解设计模式——模板方法模式

模板方法模式(Template Method)定义一个操作中算法的框架,而将一些步骤延迟到子类中,使得子类可以不改变算法的结构即可重定义该算法中的某些特定步骤。类图:模板方法模式是编程中经常用到的模式,其非常简单,AbstractClass叫抽象模板,其方法分为3类:1.抽象方法:父类中只声明但不加以实现,而是定义好规范,然后由它的子类去实现。2.模版方法:由抽象类声明并加以实

2017-05-26 12:08:30 250

原创 详解设计模式——建造者模式

建造者模式(Builder)将一个复杂的构建与其表示相分离,使得同样的构建过程可以创建不同的表示。主要解决在软件系统中,有时候面临着"一个复杂对象"的创建工作,由于需求的变化,这个复杂对象的某些部分经常面临着剧烈的变化,一些基本部件不会变。所以需要将变与不变分离。与抽象工厂的区别:在建造者模式里,有个指导者(Director),由指导者来管理建造者,用户是与指导者联系的,指导者联系建造者最后得

2017-05-25 21:29:51 238 1

原创 详解设计模式——抽象工厂模式

抽象工厂模式(Abstract Factory)为创建一组相关或相互依赖的对象提供一个接口,而且无需指定他们的具体类。抽象工厂是工厂模式的升级版,他用来创建一组相关或者相互依赖的对象。来看下抽象工厂模式的类图:上节学习了工厂模式,类的创建依赖工厂类,程序需要扩展时,我们必须创建新的工厂类。工厂类是用来生产产品的,那我们也可以把“工厂类当成我们要生产的产品”,所以抽象工厂就是“工厂的工厂

2017-05-25 21:28:01 251

原创 详解设计模式——工厂方法模式

工厂方法模式(Factory Method)定义一个用于创建对象的接口,让子类决定实例化哪一个类,工厂方法使一个类的实例化延迟到其子类。类图:1.很多工厂都有一些相同的行为,比如汽车工厂。我们需要抽象这些相同的行为成接口,每个工厂都实现这个接口。1.  publicinterfaceIFactory{2.   3.      publicvoid creat

2017-05-25 21:26:17 272

转载 JMeter接口测试

前言:  本文主要针对http接口进行测试,使用Jmeter工具实现。  Jmter工具设计之初是用于做性能测试的,它在实现对各种接口的调用方面已经做的比较成熟,因此,本次直接使用Jmeter工具来完成对Http接口的测试。 一、开发接口测试案例的整体方案:第一步:我们要分析出测试需求,并拿到开发提供的接口说明文档;第二步:从接口说明文档中整理出接口测试案例,里面要包括详细

2017-05-25 10:24:35 450

转载 接口测试基础

接口测试简介百度百科中为接口测试给出的定义:接口测试是测试系统组件间接口的一种测试。接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。测试的重点是要检查数据的交换,传递和控制管理过程,以及系统间的相互逻辑依赖关系等。接口测试通常包括两类,模块之间的接口测试和 Web 接口测试。前者通常是由开发人员在单元测试中进行测试,后者则通常由测试人员进行测试。后

2017-05-12 11:56:12 1453

转载 linux无界面下selenium安装及使用示例

selenium相信做自动化测试的童鞋并不陌生,但平常都是在windows下进行脚本运行。    如果换成Linux呢?命令行的linux如何去进行自动化测试呢?    答案是:使用phantomJS配合selenium,可以创建无界面的浏览器,这样即可达到我们的目的。 配置方法: 1.安装phantomJShttp://www.phperz.com/article/1

2017-05-11 11:51:55 1218

转载 IP头结构详解

版本号(Version):长度4比特。标识目前采用的IP协议的版本号。一般的值为0100(IPv4),0110(IPv6)IP包头长度(Header Length):长度4比特。这个字段的作用是为了描述IP包头的长度,因为在IP包头中有变长的可选部分。该部分占4个bit位,单位为32bit(4个字节),即本区域值= IP头部长度(单位为bit)/(8*4),因此,一个IP包头的长度最长为“

2017-05-09 09:50:55 6477

原创 简单说说如何测试内存泄漏

内存泄漏产生的原因:内存分配后忘了回收(new或malloc后没有delete或free);程序代码问题造成内存无法回收(如死循环造成无法执行到回收步骤);API函数操作不当,造成内存泄漏。检查方法人工静态法:代码走读,人工查找未被回收的内存。自动工具法:借助相应测试内存泄漏的工具,如Visual Leak Detector,记录每次内存分配,清楚告诉用户内存是如何泄漏的。

2017-05-06 21:29:19 4207

原创 查缺补漏——Shell里的"$"

Shell里的"$"        Shell中纷繁的"$"让人眼花缭乱,简单的总结几个常用的"$"。$$:  进程号$0:  脚本名$1:  第一个参数$#:  参数数量$*:  全部参数 不分开$@:  全部参数 分开$?:  退出状态,正常是0

2017-05-06 10:28:47 265

转载 查缺补漏——define和inline

首先#define有很大的好处: 1.首先谈一下在C中使用这种形式宏定义的原因,C语言是一个效率很高的语言,这种宏定义在形式及使用上像一个函数,但它使用预处理器实现,没有了参数压栈,代码生成等一系列的操作,因此,效率很高,这是它在C中被使用的一个主要原因。  2.这种宏定义在形式上类似于一个函数,但在使用它时,仅仅只是做预处理器符号表中的简单替换,因此它不能进行参数有效性的检测,也就不能享

2017-05-05 20:45:13 252

原创 java垃圾回收(GC)

面试被问到GC,又发现了自己的薄弱点,亡羊补牢,把这块缺失的知识补上!先来几个基本概念:JVM:Java Virtual Machine,执行java字节码的虚拟机。Java可在任意平台运行,不需在不同平台下重新编译,归功于JVM。JVM由堆、栈、本地方法栈、方法区等部分组成。1)堆所有通过new创建的对象的内存都在堆中分配,其大小可以通过-Xmx和-Xms来控制。堆被划分为新

2017-05-05 20:42:16 265

转载 ARP协议与RARP协议

ARP协议详解RARP原文链接http://www.cnblogs.com/LUO77/p/5906381.htmlARP协议(地址解析协议)是IP地址转换成MAC地址的协议。属于链路层协议。过程如下:1:首先,每个主机都会在自己的ARP缓冲区中建立一个ARP列表,以表示IP地址和MAC地址之间的对应关系。2:当源主机要发送数据时,首先检查ARP列表中是

2017-05-02 17:17:08 765

空空如也

空空如也

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

TA关注的人

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