摘要:模板方法模式A.定义:定义一个操作的算法的骨架,把某些操作步骤推迟到子类中。模板方法模式使子类在不改变算法结构的情况下,重新定义该算法的某些步骤。B.定义分析:"定义一个操作的算法的骨架,把某些操作步骤推迟到子类中。模板方法模式使子类在不改变算法结构的情况下,重新定义该算法的某些步骤。"算法的骨架指的是算法的关键步骤,我们把算法的关键步骤定义成虚接口。"定义一个操作的算法的骨架,把某些操作步骤推迟到子类中。模板方法模式使子类在不改变算法结构的情况下,重新定义该算法的某些步骤。"子类如果重载了这些虚接口,就会使算法的相应步骤被重写,这样子类就有机会(hoo
阅读全文
摘要:Synergy工具,绝对好玩而且好用,下面我们一步步,搞定一套鼠标键盘同时操作windows和linux双系统,本篇的环境是windows xp和ubuntu9.101.安装工具windows搜索Synergy1.3.1,默认安装即可ubuntuapt-get install synergy2.配置windows端作为服务器,比较方便,下面是配置:打开windows端的Synergy,设置:点击Configure添加两个机器,两个连接,如下:windows和linucos-desktop是主机名,windows系统下,可以通过查看我的电脑看到,ubuntu下,可以使用hostname查看3.使
阅读全文
摘要:--- Step by Step1. sudo apt-get install apache22. sudo apt-get install php53. sudo /etc/init.d/apache2 restart4. sudo apt-get install mysql-server5. sudo apt-get install mysql-admin6. sudo apt-get install libapache2-mod-auth-mysql7. sudo apt-get install php5-mysql8. sudo apt-get install phpmyadmin9
阅读全文
摘要:lrzsz工具在配合secureCRT相当实用,现把其移植到arm-linux下交代下环境:pc ubuntu9.10cross-compile eldk41_gcc40--1--获取源码http://www.ohse.de/uwe/software/lrzsz.html获取lrzsz-0.12.20.tar.gz--2--解压源码tar -xzf lrzsz-0.12.20.tar.gz--3--修改配置vi arm-linux.cache将ac_cv_prog_CC=${ac_cv_prog_CC='gcc'}改成ac_cv_prog_CC=${ac_cv_prog_CC=
阅读全文
摘要:状态模式A.定义:当对象的状态改变时候改变他的行为,就像改变了他的类一样。B.定义分析:"当对象的状态改变时候改变他的行为,就像改变了他的类一样。"对象的状态,比如:开始、停止、暂停状态。当对象的状态改变时候,比如由开始状态变成暂停状态,开始状态时候,调用对象的pause接口,会变成暂停状态,但是在暂停状态时候,调用对象的pause接口,不会有任何反应。"当对象的状态改变时候改变他的行为,就像改变了他的类一样。"对象的行为随着状态改变,确实就和类被改变了一样。C.问题:(1)怎么实现?具体实现比较简单,抽象一个状态对象,客户面对这个状态对象,聚合它。抽象
阅读全文
摘要:观察者模式A.定义:定义对象间一种一对多的依赖关系,当对象变化时,其他对象能够得到通知,并自动更新。B.定义分析:"定义对象间一种一对多的依赖关系,当对象变化时,其他对象能够得到通知,并自动更新。"多个对象关注一个对象的状态,比如一个数据来源。"定义对象间一种一对多的依赖关系,当对象变化时,其他对象能够得到通知,并自动更新。"被关注的对象变化时,有种办法能通知其他关注对象。"定义对象间一种一对多的依赖关系,当对象变化时,其他对象能够得到通知,并自动更新。"通知关注对象的时候,实际上可行的一个方法是调用一个定义好的更新接口。C.问题:(
阅读全文
摘要:策略模式A.定义:定义一系列算法,并把他们一个个封装起来,使他们能够相互替换。使算法能够独立于客户而变化。B.定义分析:"定义一系列算法,并把他们一个个封装起来,使他们能够相互替换。使算法能够独立于客户而变化。"完成相同功能的算法."定义一系列算法,并把他们一个个封装起来,使他们能够相互替换。使算法能够独立于客户而变化。"不同的算法,封装在不同的类里。"定义一系列算法,并把他们一个个封装起来,使他们能够相互替换。使算法能够独立于客户而变化。"封装不同算法的类,完成相同功能的接口应该是一样的,且要集成自同一个基类,这样他们就能够无缝替换
阅读全文
摘要:轻量模式A.定义:运用共享技术有效地支持大量细粒度对象。B.定义分析:“运用共享技术有效地支持大量细粒度对象”.比如,一段文字,一幅图片,一个颜色,所有用到的地方,都使用同一个对象,而不是每次都new出一个新的实例。“运用共享技术有效地支持大量细粒度对象”.比如,一个文档编辑器,里边的字符,图形,标点等等,如果每个单一的元素都用一个对象实例的话,那对象数量就会很多很多。C.问题:(1)共享技术怎么有效地支持大量细粒度的对象?建立一个共享对象池,所有的实例请求都经过共享池的接口,这样就达到了共享对象的目的。需要注意的是,为了是共享实例能够多个地方使用,需要区分对象的内部状态和外部状态,内部状态不
阅读全文
摘要:代理模式A.定义:为其他对象提供一种代理,以控制对这个对象的访问。B.定义分析:"为其他对象提供一种代理,以控制对这个对象的访问。"代理的意思就是:访问目标的中间对象,也就是我们不直接访问目标,而是通过一个中间对象访问目标对象,这个中间对象就是代理。"为其他对象提供一种代理,以控制对这个对象的访问。"不直接访问需要的对象,而是访问代理对象,代理对象完成被代理的目标对象的功能。那为什么要用代理呢?当我们希望访问目标对象时候,我们被通知,或者期间我们需要控制一些东西...当目标对象不在同一个地址空间,而我们要希望没有区别的访问的时候...当目标对象很大,加载
阅读全文
摘要:组合模式A.定义:把对象组织成树形结构以表示“整体-部分”关系。组合模式使单个对象和组合对象在使用上没有区别。B.定义分析:"把对象组织成树形结构以表示“整体-部分”关系。组合模式使单个对象和组合对象在使用上没有区别。"整体部分关系,比如:Window这个对象,其中可以包括Button,List,Menu等组件,Window就是个整体,Button,List,Menu等就是组成部分."把对象组织成树形结构以表示“整体-部分”关系。组合模式使单个对象和组合对象在使用上没有区别。"如果上边的Window里包含了List,同时也包含了另一个Window对象,里
阅读全文
摘要:装饰者模式A.定义:动态地给一个对象添加一些职责。就增加功能而言,装饰者模式比生成子类更灵活。B.定义分析:"动态地给一个对象添加一些职责。就增加功能而言,装饰者模式比生成子类更灵活。"我们知道,对象的职责定义在类中,类的方法决定了对象的职责."动态地给一个对象添加一些职责。就增加功能而言,装饰者模式比生成子类更灵活。"装饰者模式的意图是不修改类,而是动态给对象添加职责."动态地给一个对象添加一些职责。就增加功能而言,装饰者模式比生成子类更灵活。"装饰者不修改类,而是动态给对象加,当然灵活.C.问题:(1)怎么实现?假设有类A和Sub
阅读全文
摘要:桥接模式A.定义:将抽象部分和它的实现部分分离,使他们可以独立的变化.B.定义分析:"将抽象部分和它的实现部分分离,使他们可以独立的变化."抽象部分,比如我们写一个gui tookit,里边有个Window类,这个类代表了窗口,提供了窗口的功能接口如:close、open、resize、moveto等等.基类的接口,我们可以理解为抽象部分."将抽象部分和它的实现部分分离,使他们可以独立的变化."实现部分,上边说抽象部分是Window类,实现Window的功能:我们有方法法a:直接在Window类的定义中,绘制Window的轮廓、外形、标题栏、滚动条等等,
阅读全文
摘要:Your Ride is HereA.题目大意:给两个字符串,有大写字母组成,A代表数字1,其他字母依次下排.计算一个字符串内数字乘积,如果这两个字符串乘积模47相等的话输出GO,否则输出STAY.B.题目分析:题目比较简单,分析省略。注意源码格式。C.代码: 1 /* 2 { 3 ID: linucos1 4 PROG: ride 5 LANG: C++ 6 } 7 */ 8 #include <iostream> 9 #include <fstream>10 #include <string>11 12 using namespace std;13 14
阅读全文
摘要:适配器模式A.定义:将一个类的接口装换成客户希望的另一个接口,适配器模式使原来不能一起工作的类可以一起工作.B.定义分析:"将一个类的接口装换成客户希望的另一个接口,适配器模式使原来不能一起工作的类可以一起工作."一个已有类,有一些接口,完成一些功能.假设类A"将一个类的接口装换成客户希望的另一个接口,适配器模式使原来不能一起工作的类可以一起工作."把这些已有的接口通过封装,能够融合进已有的类体系,也就是从已有类继承出一个类B,这个类封装了A的功能,同时适应了已有接口."将一个类的接口装换成客户希望的另一个接口,适配器模式使原来不能一起工作的类
阅读全文
摘要:1. 简单canvas入门<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="text/ht
阅读全文
摘要:原型模式A.定义:用原型实例指定创建对象的种类,通过拷贝原型实例创建新的对象.B.定义分析:"用原型实例指定创建对象的种类,通过拷贝原型实例创建新的对象."原型实例指的是一个类的实例,对于我们要创建的对象来说,称之为原型."用原型实例指定创建对象的种类,通过拷贝原型实例创建新的对象."我们将要创建的对象,和原型实例是一类的,也就是一个类."用原型实例指定创建对象的种类,通过拷贝原型实例创建新的对象."我们创建新对象的时候,不用自己new,只需要原型类提供的clone方法创建新的实例即可.这个模式很容以就想到了,而且是需要的时候就会想到
阅读全文
摘要:创建者模式A.定义:将一个复杂对象的创建过程和表示分离,使相同的创建过程可以构造不同的表示.B.定义分析:"将一个复杂对象的创建过程和表示分离,使相同的创建过程可以构造不同的表示."我们假设一个对象很复杂,组成部分很多分别为PA,PB,PC,PD."将一个复杂对象的创建过程和表示分离,使相同的创建过程可以构造不同的表示."我们建设创建接口分别为BuildPA, BuildPB, BuildPC,BuildPD,且每个部分都有多种原料选择.我们说的原料比如颜色,就是“表示”.创建过程就是BuildPx的接口一次调用,这个过程永远不变.创建者模式就是让这不变
阅读全文
摘要:抽象工厂模式A.定义:提供一个创建一系列相关或相互依赖的对象的接口,而无需指定他们具体的类.B.定义分析:"提供创建一系列相关或相互依赖的对象的接口,而无需指定他们具体的类."类似简单工厂和工厂方法,要定义一个类,提供接口,但是是多个."提供创建一系列相关或相互依赖的对象的接口,而无需指定他们具体的类."这个接口象简单工厂的接口一样,创建对象,但是有个约束:这些对象是相关的或者相互依赖的;"提供创建一系列相关或相互依赖的对象的接口,而无需指定他们具体的类."这句话的意思可能是:因为抽象工厂派生类已经约束了种类,这里无须指定.C.问题(
阅读全文
摘要:工厂方法模式A.定义:定义一个创建对象的接口,让子类决定实例化哪一个类.工厂方法模式使一个product的实例化推迟到factory的子类中.B.定义分析:"定义一个创建对象的接口,让子类决定实例化哪一个类."和简单工厂一样,定义一个类,包含一个newProduct这样的创建对象的接口."定义一个创建对象的接口,让子类决定实例化哪一个类."和简单工厂不同的是,这个factory类不再自己的newProduct接口创建所有的对象了.而是通过派生子类的方法创建具体product.子类继承factory后,多态实现newProduct接口,在自己的接口中创建具
阅读全文
摘要:外观模式A.定义:为子系统的一组接口提供一个一致的界面,外观模式提供一个高层接口,这个接口是子系统更加容易使用.B.定义分析:"为子系统的一组接口提供一个一致的界面,外观模式提供一个高层接口,这个接口是子系统更加容易使用." 做法是提供一个界面,实际就是一组接口."为子系统的一组接口提供一个一致的界面,外观模式提供一个高层接口,这个接口是子系统更加容易使用." 这一组接口是为子系统的一组接口提供的.那为什么不直接使用这个子系统的接口,而要重新定义一套,重复造轮子呢?考虑下列情况:如果子系统中类很多,需要的功能接口分布在不同的类中.如果子系统设计的领域知识
阅读全文
摘要:简单工厂模式A.定义:定义一个用于创建对象的接口.B.定义分析:"定义一个用于创建对象的接口". 这个模式的应用主要是定义一个接口,每个类都会有接口,对于面向对象语言就是定义一个类,这个类里有个接口."定义一个用于创建对象的接口".定义的这个类中含有的接口,是什么功能呢?用于创建对象.什么样的接口叫做用于创建对象的接口呢?比如:SimpleFactory类的newProduct接口这样实现:AbstractProduct* SimpleFactory::newProduct(const char* name){ if(0 == strcmp(name,
阅读全文
摘要:又捡了一道水题做.曾经有个大牛跟我说:成为大牛的方法是刷水题.我无意成为大牛,但是也要从水题开始刷.poj-1068 - Parencodings问题描述:一组括号 (((( ) ( ) ( ) ) ) )有两种描述方法:P方法:4 5 6 6 6 6 - 每一个)前,有几个(W方法:1 1 1 4 5 6 - 每一个),向前数几个是跟它匹配的(要求是根据P求W问题分析:解题思路:1. 虽然没说,但是可以推测出,括号的个数是偶数;第一个一定是(,最后一个一定是)2. P方法和W方法之间可能存在公式类的规律,但是要寻找不是特别简单3. 手动分析过程中,我们知道,可以模拟出推到W的过程-模拟法4.
阅读全文
摘要:很久不做oj,发现思维明显跟不上(大学时候也跟不上:)).一直在想文件输入的接口是什么来着,终于google到freopen("data", "r", stdin);程序设计重在思维:我总结有三点,一是项目管理思维(开发方法、人员结构、管理方式);二是软件工程思维(软件架构);三是解题逻辑思维(针对特定逻辑问题的思路)思维需要锻炼,且要持续不断.oj做题正是锻炼解题逻辑思维的好方法.POJ-1002- 487-3279问题描述:电话号码有多种写法,010-8888,0108888,-010-8888,-0-1-0-8-8-8-8-等等.如果要把A-Z大写
阅读全文