自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(31)
  • 资源 (1)
  • 收藏
  • 关注

原创 Template Method模板方法设计模式(类行为型)

概述在面向对象开发过程中,通常我们会遇到这样的一个问题:我们知道一个算法所需的关键步骤,并确定了这些步骤的执行顺序。但是某些步骤的具体实现是未知的,或者说某些步骤的实现与具体的环境相关。 例子1:银行业务办理流程 在银行办理业务时,一般都包含几个基本固定步骤: 取号排队->办理具体业务->对银行工作人员进行评分。 取号取号排队和对银行工作人员进行评分业务逻辑是一样的。但是办理具体业务是个不相

2016-08-30 16:00:02 344

原创 Strategy策略设计模式(对象行为型)

意图: 定义一系列的算法,把它们封装起来,并且使他们可相互替换。本模式使得算法可独立于使用它的客户而变化适用性 1)• 许多相关的类仅仅是行为有异。 “策略”提供了一种用多个行为中的一个行为来配置一个类的方法。即一个系统需要动态地在几种算法中选择一种。 2)• 需要使用一个算法的不同变体。例如,你可能会定义一些反映不同的空间 /时间权衡的算法。当这些变体实现为一个算法的类层次时 ,可以使用策略

2016-08-30 15:01:56 289

原创 State状态设计模式(对象行为型)

意图: 允许一个对象在其内部状态改变时改变它的行为。对象看起来似乎修改了他的类。适用性 1) • 一个对象的行为取决于它的状态, 并且它必须在运行时刻根据状态改变它的行为。 2) • 代码中包含大量与对象状态有关的条件语句:一个操作中含有庞大的多分支的条件(if else(或switch case)语句,且这些分支依赖于该对象的状态。这个状态通常用一个或多个枚举常量表示。通常 , 有多个操作包

2016-08-30 14:15:25 402

原创 Observer观察者设计模式(对象行为型)

意图: 定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新适用性 在以下任一情况下可以使用观察者模式: • 当一个抽象模型有两个方面, 其中一个方面依赖于另一方面。将这二者封装在独立的对象中以使它们可以各自独立地改变和复用。 • 当对一个对象的改变需要同时改变其它对象 , 而不知道具体有多少对象有待改变。 • 当一个对象必须通知其它对象,

2016-08-30 11:45:02 414

原创 Linux命令shell脚本编程学习笔记-18章初识sed和gawk

第18章 初识sed和gawk18.1 文本处理sed编辑器 sed编辑器可以基于输入到命令行的或是存储在命令文本文件中的命令来处理数据流中的数据。 它每次读取一行,用提供的编辑器命令匹配数据、按命令中指定的方式修改流中的数据,然后将生成的数据输出到STDOUT。在流编辑器将所有命令与一行数据进行匹配后,它会读取下一行数据并重复这个过程。在流编辑器处理完流中的所有数据行后,它就会终止。 sed

2016-08-29 19:51:27 589

转载 Linux多线程,线程的分离与结合

本文转自:http://www.cnblogs.com/mydomain/archive/2011/08/14/2138454.htm其实在写上一篇日志的时候,由于我把创建线程的返回值的判断条件写错了,程序每次运行的时候都是显示创建线程失败,我就百度了一下,有人说是桟资源不足引起的,要调用一个pthread_attr_setdetachstate()函数,当时不明白为什么,其原理是什么,于是又搜了一

2016-08-29 18:51:01 368

原创 Linux命令与shell脚本编程学习笔记-16创建函数

16章 创建函数16.1 基本的脚本函数创建函数#用function关键字function name{ commands}#函数名字后跟圆括号name(){ commands}function func1{ echo “it is a example”}count=1while [$count -le 5]do func1 ++count;d

2016-08-28 17:16:42 381

原创 mediator中介者设计模式(行为模式)

意图: 用一个中介者对象来封装一系列的对象交互。中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立的改变他们之间的交互。适用性: • 1)系统中对象之间存在复杂的引用关系,产生的相互依赖关系结构混乱且难以理解。 • 2)一组对象以定义良好但是复杂的方式进行通信。产生的相互依赖关系结构混乱且难以理解。 • 3)一个对象引用其他很多对象并且直接与这些对象通信 ,导致难以复用该对象

2016-08-28 13:33:54 438

转载 设计模式通俗理解

第10个设计模式,享元设计模式运用共享技术有效地支持大量细粒度的对象

2016-08-22 22:05:15 2057 1

原创 Iterator迭代器设计模式学习(对象行为型)

迭代器设计模式意图: 提供一种方法顺序访问一个聚合对象中各个元素,又不需要暴露这个对象的内部表示适用性访问一个聚合对象的内容而无需暴露它的内部表示。需要为聚合对象提供多种遍历方式。为遍历不同的聚合结构提供一个统一的接口 (即, 支持多态迭代)结构参与者Iterator: 迭代器定义访问和遍历元素的接口。ConcreteIterator: 具体迭代器实现迭

2016-08-22 21:25:15 338 1

原创 Linux命令与shell编程学习-15章控制脚本

第15章控制脚本15.1 处理信号默认情况下,bash shell会忽略收到的任何SIGQUIT(3)和SIGTERM(5)信号。 如果bash shell收到了SIGHUP信号,它会退出。但是在退出之前,它会将SIGHUP信号传给shell启动的所有进程(比如shell脚本)。通过SIGINT可以中断shell。Linux内核会停止将CPU的处理时间分配给shell。此时,shel

2016-08-22 11:39:53 314 1

原创 Linux命令和shell编程学习--14章呈现数据

14章呈现数据#临时重定向./test.sh 2>err.txt#默认情况下,Linux会将STDERR定向到STDOUT#永久重定向exec 1>out.txtexec 0<test.file#从文件获得输入exec命令告诉shell 在脚本执行期间重定向某个特定文件描述符创建自己的重定向 在脚本中重定向,不局限于3个默认的文件描述符,shell中最多可以有9个打开的文件描述符。exec

2016-08-22 10:08:51 213 1

原创 Linux命令行与shell编程笔记-13处理用户输入

13章 处理用户输入位置参数$0 程序名,可以对$0使用basename函数(basename $0),它只返回程序名$1 第1个参数${10} 第10个参数每个参数以空格隔开特殊参数变量$# 参数数量${!#} 最后一个参数。花括号({})中不允许使用美元符号,这里使用感叹号(!)$* 将命令行上提供的所有参数当做1个单词保存echo $*$@ 所有参数的集合f

2016-08-21 22:08:56 520 1

原创 Facade外观设计模式(结构型)

第九个设计模式 facadefacade模式定义了一个高层接口,这个接口使得子系统更加容易被使用。想想我们小时候玩的四驱车,里面的构造很复杂,马达,舵机,电池组等等,而我们控制它却非常简单,只要打开电池开关,他就可以跑。我们其实不用知道它里面是如何工作,只要知道拨动开关它就可以工作就行了,这个开关其实就四驱车给我们的一个友好的组件,使得我们可以很方便的控制它。将一个系统划分成为若干个子系统有利于降低

2016-08-20 17:08:35 351 1

原创 Decorator装饰设计模式(结构型)

第八个设计模式意图 动态地给一个对象添加一些额外的职责。有时候我们需要给某个对象而不是整个类添加一些功能。适用性在不影响其他对象的情况下,以动态、透明的方式给单个对象添加职责。处理那些可以撤消的职责。当不能采用生成子类的方法进行扩充时。一种情况是,可能有大量独立的扩展,为支持每一种组合将产生大量的子类,使得子类数目呈爆炸性增长。另一种情况可能是因为类定义被隐藏,或类定义不能用于生成子类。

2016-08-20 16:16:42 437 1

原创 composite组合设计模式(结构型)学习

第七个设计模式 组合模式意图:将对象组合成树形结构以表示“部分-整体”层次结构,Composite使得用户对单个对象和组合对象的使用具有一致性。 适用性 - 你想表示对象的部分-整体层次结构 - 你希望用户忽略组合对象与单个对象的不同,用户将统一地使用组合结构中的所有对象。结构 典型的组合对象结构如下: 参与者 component:是组合中的对象声明接口,在适当的

2016-08-20 13:59:46 460 1

原创 Linux命令行与shell编程笔记 结构化命令

11章 使用结构化命令if commandthen commandfi这个结构就是if 部分命令成功运行 ,就执行then,否则跳过then。就是C语言中的if没有else的部分。if commandthen commandelse commandfi如果if后面的命令退出状态码=0,那么就执行then,否则,执行elseif command1 then

2016-08-20 12:18:57 398 1

原创 Linux命令行与shell编程笔记 第10章

第10章 构建基本脚本10.1 使用多个命令 如果有两个命令要一起运行,命令之间用分号隔开10.2 创建shell脚本文件shell脚本的行中,#号用作注释行shell脚本中第一行特例,井号后跟着叹号,告诉shell用哪个shell来运行脚本#/bin/bash建立完脚本文件后,文件还需要有执行权限才行 chmod u+x file.shecho -n 与下一行信息显示在同一行 10.4

2016-08-20 10:15:47 206

原创 Linux命令行与shell编程笔记 5章-7章

5.5设置PATH环境变量 在Linux下面安装软件,有时候需要将安装路径加入到PATH中。 PATH=$PATH:path_name 中间由冒号隔开 5.6定位系统环境变量 /etc/profile是系统总的默认bash shell的主启动文件。每个用户登录都会执行这个启动文件。5.7数组$ arr=(one two three)$ echo ${arr[1]}$ tw

2016-08-20 09:08:33 218

原创 effective C++ 学习笔记 实现&&继承与面向对象设计

五.实现大多数情况下,适当提出拟的类定义以及函数声明,是花费最多心力的两件事。尽管如此,还是有很多东西需要小心:太快定义变量可能造成效率上的拖延;过度使用转型(casts)可能导致代码变慢又难维护,又招来微妙难解的错误;返回对象“内部数据之号码牌(handls)”可能会破坏封装并留给客户虚吊号码牌;为考虑异常带来的冲击则可能导致资源泄漏和数据败坏;过度热心地inlining可能引起代码膨胀;过

2016-08-19 09:39:49 300

原创 图解HTTP---学习笔记1

第一章 了解web及网络基础第二章 简单的HTTP协议HTTP协议规定:从客户端开始建立通信,服务器端在没有接收到请求之前不会发送响应 请求报文由请求方法,请求URI,协议版本,可选的请求首部字段和内容实体构成 响应报文由协议版本,状态码,用以解释状态码的原因短语,可选的响应首部字段以及实体主体构成HTTP是不保存状态的协议,自身不对请求和响应之间的通信状态进行保存。

2016-08-15 15:36:33 432

原创 C++四种类型转换介绍

本文的内容结合作者 http://blog.csdn.net/fanyun_01/article/details/51546127和作者 http://www.2cto.com/kf/201408/324929.html 两篇文章而来的C++中的旧式类型转换分为两种:1. 隐式类型转换(而对于隐式变换,就是标准的转换,在很多时候,不经意间就发生了,比如int类型和float类型相

2016-08-14 21:47:12 308

原创 BRIDGE桥接设计模式(结构型)

意图:将抽象部分与它实现部分分离,使他们都可以独立的变化适用性: - 不希望抽象与其实现部分有一个固定绑定的关系 - 类的抽象和他的实现都应该可以通过生成子类的方法加以切换。Bridge模式就可组合不同的抽象以及它的实现 - 对一个抽象的实现部分进行修改对客户不产生影响,客户代码不需要进行重新编译 - 想对客户完全隐藏抽象的实现部分结构 参与者:抽象类(Abstraction):定

2016-08-11 22:24:19 281

原创 设计模式学习-适配器模式(结构型)

设计模式五:适配器模式意图:将一个类的接口转换成客户希望的另外一个接口,使得以前由于接口不兼容不能一起工作的类可以一起工作适用性:有一个现存的类,你想要使用,但是接口不符合你的需要。你想创建一个可以复用的类,该类可以与其他不相关的类或不可预见的类(即那些接口可能不一定兼容的类)协同工作。(仅适用于对象Adapter)你想使用一些已经存在的子类,但是不可能对每一个都进行子类化以匹配它们的接口。对

2016-08-11 20:55:40 209

原创 设计模式学习-创建型

设计模式1 工厂模式factoryhttp://blog.csdn.net/hguisu/article/details/7505909 工厂方法模式: 一个抽象产品类,可以派生出多个具体产品类。 一个抽象工厂类,可以派生出多个具体工厂类。 每个具体工厂类只能创建一个具体产品类的实例。抽象工厂模式: 多个抽象产品类,每个抽象产品类可以派生出多个具体产品类。 一个抽象工厂类,可以派生出多

2016-08-11 19:50:13 229

原创 Linux shell脚本攻略-学习笔记(7-9章)

第七章 无网不利7.2 联网知识入门 ifconfig命令用于显示网络接口、子网掩码等详细信息 提取IP地址: ifconfig wlan0 | egrep -o “inet addr:[^ ]” | grep -o “[0-9.]”打印网络接口列表: ifconfig | cut -c -10 | tr -d ’ ’ | tr -s ‘\n’fping命令 -a 指定打印出所有活

2016-08-11 09:00:44 363

转载 C中的volatile用法

最近在学习网络编程,其中就有源代码使用了volatile。特地找了一篇博文进行学习。这个博文转自:http://www.cnblogs.com/chio/archive/2007/11/24/970632.htmlvolatile 影响编译器编译的结果,指出,volatile 变量是随时可能发生变化的,与volatile变量有关的运算,不要进行编译优化,以免出错,(VC++ 在产生release版可

2016-08-09 10:03:05 178

原创 进程间通信笔记-记录上锁&&信号量&&共享内存

第九章 记录上锁记录锁是读写锁的一种扩展类型,可用于亲缘关系或无亲缘关系的进程之间共享某个文件的读与写。被锁住的文件通过文件描述符进行访问,执行上锁的操作函数是fcntl,这种类型的锁通常在内核中维护。这些锁用于不同进程间上锁,而不是用于同一进程内的不同线程间记录锁的功能是:一个进程正在读或修改文件的某个部分时,可以阻止其他进程修改同一文件区,即其锁定的是文件的一个区域或整个文件。记录锁有

2016-08-08 09:03:07 1092

原创 进程间通信学习笔记-互斥锁 && 读写锁

第七章 互斥锁和条件变量互斥锁是用于保护临界区的,实际上是保护在临界区中被操纵的数据,保护多个线程或者多个进程的共享数据。#includeint pthread_mutex_lock(pthread_mutex_t *mptr);int pthread_mutex_trylock(pthread_mutex_t *mptr);int pthread_mutex_unlock(pt

2016-08-07 08:47:15 1634

原创 孤儿进程、僵尸进程、守护进程

孤儿进程:一个父进程退出,而它的一个或多个子进程还在运行,那么那些子进程将成为孤儿进程。孤儿进程将被init进程(进程号为1)所收养,并由init进程对它们完成状态收集工作。僵尸进程:一个进程使用fork创建子进程,如果子进程退出,而父进程并没有调用wait或waitpid获取子进程的状态信息,那么子进程的进程描述符仍然保存在系统中。这种进程称之为僵死进程。僵尸进程没有被父进程处理的后果 unix

2016-08-04 19:58:50 2190

原创 leetcode 91-120记录

91Decode ways (medium)92 reverse Linked List II(medium)93restore IP address(medium)94binary tree inorder traversal (medium)95unique binary search tree II(medium)96unique binary search tree

2016-08-04 10:35:37 302

代码阅卷器java版

这个是集计算器,阅卷和查分与一体。有界面设计,将要阅卷的试卷存在D盘上的CTest上,每个学生的程序以学号命名

2013-02-10

空空如也

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

TA关注的人

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