- 博客(234)
- 资源 (3)
- 收藏
- 关注
原创 TemplateMethod模式
父类已经提供好了算法模板,子类负责具体实现各步算法。在使用TemplateMethod模式时一定对算法的分析很透彻,不然模板定下来,一旦改变就很困难了。 TemplateMethod模式在Android框架中使用的很多。例如Activity对象的几个状态。 其中就定义了onCreat
2012-07-20 16:04:29 785
原创 Proxy模式
Proxy模式是构造型的设计模式之一.所谓代理,是指具有与代理元(被代理的对象)具有相同的接口的类,客户端必须通过代理与被代理的目标类交互,而代理一般在交互的过程中(交互前后),进行某些特别的处理。 根据这些“特别处理”的不同,有以下几种常见的代理模式:- Remote proxy:远程代理。该代理可以让客户端透明地引用一个存在于不同地址空间(远程或本地)的对象。- Virtu
2012-07-20 10:45:01 931
原创 adapt模式
代码都是人写的,每个人的生存体验都是不一样的,做事的风格也是。就能方法取名来,有些人喜欢java的大小骆驼,有些人则是下划线控。 现在你要写一个类,类中有一个函数,项目很严谨,名字都规定好了。你以前的的一个接口类能够派上用场,可是函数名却很是不同,叫你粘贴复制你感觉面子上挂不住,那现在你就需要一些adapt(改编,适应)。
2012-07-18 23:42:20 2047
原创 Prototype模式
有时候我们已经创建了一个对象,但是我们想再得到这个对象的一个副本,复制构造函数是很好的选择,当然必要的封装能够优化结构和少打点代码(有点工厂的味道,给你用就行了)。 对于Prototype模式模式,我使用More Effective C++中的例子。 我到一家餐厅吃饭,离我不远的顾客正在吃饭,我看他狼吞虎咽的,不由的好
2012-07-18 19:45:59 1231
原创 君子有三戒
君子有三戒:少之时,血气未定,戒之在色;及其壮也,血气方刚,戒之在斗;及其老也,血气既衰,戒之在得。延伸阅读:君子有三件事需要戒:年轻的时候,血气未定,要戒女色;壮年的时候,血气方刚,要戒斗殴;等到年老了,血气已衰,要戒贪心。
2012-07-18 10:14:08 1821
原创 建造者模式
建造者模式可以将一个产品的内部表象与产品的生成过程分割开来,从而可以使一个建造过程生成具有不同的内部表象的产品对象。和工厂模式相比,就是我连生产线都提供给你了,还明确了生产的工序。 一个是以工厂为中心,一个是以产品为中心。 下图是简单的描述图 #ifndefPRODUCT_H#de
2012-07-18 09:16:48 772
原创 Factory模式
工厂模式有两种,一种是一个工厂只有一条流水线,只能生产一种特定的产品(小工厂);还有就是大工厂,一个工厂有好多条流水线,能够生产好多种产品,但是你接订单的时候必须要挑好流水线号,生产出相应的产品。 小工厂: Factory 为工厂的基类,有一个纯虚函数factoryMethod();
2012-07-17 09:39:45 951
原创 UML简介
简介面向对象(oo)这个术语的意思是,把软件组织成一系列离散的、合并了数据结构和行为的对象。对象可以是具体的,也可以是概念上的。类的选择是随意的,视应用而定。每种对象“知道如何”执行它自己的操作。开发(development)指的是软件生命周期,即分析、设计和实现。过早专注于实现会限制设计决策。只有较好地识别、组织和理解了应用领域的内在概念,才会有效表达出数据结构和函数
2012-07-15 15:01:32 976
原创 qt并行计算框架QtConcurrent和qt全局线程池
在qt中使用多线程除了使用QThread类之外,还有就是使用QtConcurrent框架和QRunable类(学java的都知道,在qt中的用法也和java一样)。 使用QtConcurrent和QRunable都会和全局线程池一起使用。 QtConcurrent和QRunable只是适用于多项的,而且各项之间的独立性很强。
2012-07-13 22:47:18 16559 1
原创 perl子例程
sub 子例程名($$)指定两个标量的参数(@$)指定一个数组按引用调用符号引用 typeglob类似于UNIX文件系统中的软链接星号(*)适用于任意类型的变量,包括标量,数组,散列,文件句柄和子例程等选择性别名和反斜杠运算符*array = \@array;*scalary = \$scalary;*hash = \%hash;*func
2012-07-11 12:10:24 2013
原创 perl字符串与排序
index(主串,子串)从0开始查找,返回最近的一个子串的头字母在主串中的位置。rindex(主串,子串)从最后结尾开始查找,返回最近的一个子串的头字母在主串中的位置。都可以接受第三个参数,表示才那位开始查找,默认的是从0或最后substr操作子字符串三个参数:一个字符串,一个从零起算的初始值以及子字符串的长度 返回的值是子字符串第二个参数为负值的话,则是从结尾
2012-07-11 12:08:10 1615
原创 perl文件操作
打开文件 open 标识符(一般全为大写,但是必须与系统已经定义的三个默认的文件句柄STDIN,STDOUT,STDERR),"文件的操作方式和文件名"读> 写>> 追加+先读后写+>先写后读+>>先追加内容,然后读select函数能把默认的输出设置成用户自定义的文件句柄,并返回前面选定的文件句柄flock函数为文件加锁,有两个参数,一个为文件句柄,一个为文件锁
2012-07-11 12:07:08 1003
原创 Perl目录操作
Perl目录操作chdir在目录之间移动,后面接的是用字符串表示的目的路径。glob所匹配的结果都是按字母顺序排序的,也不包括点号开头的文件。glob的另一种语法,“角括号语法”,跟读取文件句柄差不多。目录句柄opendir 句柄的标识符(一般全部大写),目录的路径(字符串)readdir读取内容closedir关闭移除文件unlink
2012-07-11 12:06:35 1446
原创 perl正则表达式
Perl正则表达式学习笔记正则表达式以“m”进行匹配,简易模式的可以用“/.../”来撰写模式。可以使用m 、m[],m{}...建议使用简易模式或m{},且m{}能够方便调试。 元符号在正则表达式中具有特殊意义的符号。“.”,通配符,匹配换行符(\n)以外的所有单个字符。只匹配一个字符。反斜线是第二个元字符。在正则表达式中想要使用这些元字符的本身的
2012-07-11 12:04:35 1252
原创 perl学习(三)
下面是我这几天学习perl写的练习。use strict;sub total {#求和的子例程 my $sum = 0; foreach (@_) { $sum += $_; } return $sum;}sub average {#求平均的子例程 return total(@_)/$#_;}sub wh
2012-06-29 20:42:13 787
原创 try_catch_finally的注意事项
今天考java有一条题目我错了,回来试试,才知道我的java还有好多细节没注意。 public class Test {public static String str = "";public static void fun(int i) {try {if(i == 1) {throw new Exception();}str += "1";}
2012-06-27 23:00:25 914
原创 perl学习(二)
在perl中又两个必须搞清楚,就是标量值和标量变量,列表和数组。 直接量就是数值在perl程序代码中的表现方式,就是直接写在程序里的数据,是标量值。如12,221.234,"China"等等。 变量就是容器,用来存储数值的,标志变量就是用来保存标量值的。 $temp = "temp";
2012-06-27 22:51:15 672
原创 java类的实例化过程
复习java的过程中遇到了关于类实例化过程的题目,所以就上机试试,写了一些代码。 public class A {static {System.out.println("A 静态");}{System.out.println("A 成员");}public A() {System.out.println("A 构造");}}
2012-06-26 23:53:46 826
原创 不能想当然
C++真不能想当然。 #include using namespace std;class A{public: A(){} void doSomeThing(){cout" is A";}};A* creatA(){ return new A;}void GetA(A* p_a
2012-06-25 21:06:59 778
原创 perl学习(一)
决定学习一门脚本语言,选择了perl 虽然是现在是期末复习的时候,可是还是在百忙之中开始了perl的学习,今天是第一天。 因为Linux默认安装perl,所以直接用就行了,省了编译安装的麻烦。 今天只是熟悉环境和写了个小例子。
2012-06-22 23:32:33 1008
原创 java 回文判断
老师给的复习卷子,编程题的第一题是判断一个String对象是否是回文,如“level”就是回文 下面是我的实现: public class Util {public static boolean isPalindrome(String s) {if (s == null) {return false;}for (int
2012-06-22 22:35:53 4745
转载 ZigBee组网
组网方案设计:组建一个完整的zigbee网状网络包括两个步骤:网络初始化、节点加入网络,其中节点加入网络又包括两个步骤:通过与协调器连接入网和通过已有父节点入网。网络初始化:Zigbee网络的建立是由网络协调器发起的,任何一个zigbee节点要组建一个网络必须要满足以下两点要求:1.节点是FFD节点,具备zigbee协调器的能力;2.节点还没有与其他网络连接,当节点已经与其
2012-06-19 16:59:32 12696 2
原创 对于C++中的前置++和后置++的看法
对于初学者来说,C++中的前置++和后置++很让人头疼。 在此我的看法是,不要纠结于看他是运算符,看成函数就很好理解。 看下面这个小例子 int main(){ int a = 10;
2012-06-19 00:04:37 1228
原创 qt外部数据传入实现动态的折线图绘制
在嵌入式开发中,实现数据收集与显示很常见,对于希望数据稳定的应用来说, 折现图的表现形式很符合条件。 本实现是通过qt的signal-slot来实现折线图的动态显示,一个信号的到来,数据添加,然后重绘 这是其中使用到的一些数据结构 QListqreal> xList;/
2012-06-18 23:32:58 17659 20
原创 今天是个好日子
今天是个好日子,老班刚刚通知我说,我们申请的项目已经通过学校的批准,下面做好省里面的申请工作。 更重要的是明天将能见到我女朋友了,回家好几天,想死我了。
2012-06-18 18:07:29 995
原创 以对象来管理资源
C++中局部变量在作用域里的构造和析构行为,为资源的管理提供了灵活安全的解决之道。 下面以多线程的锁来举例 #ifndef LOCK_H#define LOCK_Hclass Lock{public: Lock(Mutex &m); ~Lock(); Mutex *mutex;}
2012-06-17 22:21:34 925
原创 java写的小游戏
用java写的小游戏,翻棋子的小游戏。 使用MVC的设计思想。package cn.zhx.game;public interface function {int getR();int getC();boolean isBack(int r, int c);void change(int r, int c);
2012-06-07 16:25:12 2291
原创 java中interface的好处
java中因为有了interface的加入使得对类的功能扩展和对类的继承体系的优化提供了好的途径。 java是单一继承,C++是允许多重继承的,这就使给C++中的类做容器提供了难度。继承应该是同类继承,不然就会破坏体系。在C++中可能为了继承一些相关的功能,可能就会出现继承的父类混乱的局面,从而影响了整个继承体系的合理结构,导致类的界限不明确。所以在C++类的创造中
2012-06-06 18:48:26 5086
原创 qt中的多线程
在Qt进行多线程的编程,主要是使用提供的与平台无关的QThread类。 QThread类使用,在开发文档上的例子很少。文档提供的使用途径是重写run()函数,如下 在run()中实现的代码会在此线程中运行,可是在你继承类中你写的slots在那个线程中执行呢?这个一直很困扰我。后来做了许多实验终于发现,你继承QThread类的子类的slots在
2012-06-06 11:10:06 1597
原创 jambi
大二在学java,所以有时会写点java的小程序,可是习惯了qt的界面,使用AWT和swing让我有些不适,后来发现了jambi,才知道原来早就有了java的绑定版,所以迫不及待的安装了上。 因为Eclipse的强大,所以搭建jambi的开发平台小菜一碟啊。 1.去qt的官网下载jambi的插件,解压添加到eclipse/plugins文
2012-06-05 22:40:16 2503 1
原创 myVector
这几天把数据结构重新拿出了看,有个想法,给自己写个小的STL,这是第一个容器,向量#ifndef MYVECTOR_H#define MYVECTOR_H#include using namespace std;templateclass myVector{public: myVector(int capacity = DEFINE_SIZE);
2012-06-05 22:35:33 1362
原创 copy and swap
重载"="运算符,实现异常安全的 #ifndef WIDGET_H#define WIDGET_H#include using namespace std;class Widget{public: Widget(int* elem); ~Widget(){delete _elem;cout"~~~" Widget(const Wid
2012-06-05 22:34:10 748
原创 修饰器
修饰器模式在java中很普遍(I/O操作的类),下面是我在C++中的实现 都是继承的同一个基类,但是在实现的时候,有的实现的很高层,一些没有实现相关的接口的可以使用那些实现了高级功能的类来实现功能。#ifndef BASECLASS_H#define BASECLASS_H#include using namespace std;class baseClas
2012-06-05 22:30:58 976
原创 单模
对于资源管理和特殊的对象管理,这个模式很有效 #ifndef TEST_H#define TEST_H#include using namespace std;class Test{public: static Test& getTestClass(); ~Test(){cout void setI(int a) {i = a;
2012-06-05 22:28:51 841
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人