摘要:
Decorator,装饰模式 就是使“对象功能的扩展”能够根据需要来动态地实现,同时可以避免“扩展功能的增多”导致子类数量急剧增多,从而使得任何“功能扩展变化”所产生的负面影响降为最低。 Decorator提供了一种给类增加职责的方法,不是通过继承实现,而是组合。 举例,一辆汽车 ... 阅读全文
摘要:
composite pattern称为组合模式 在面向对象的系统中,我们经常会遇到一类具有"容器"特征的对象,即它们在充当对象的同时,又是其他对象的容器。 “Compose objects into tree structures to represent part-whole hierar... 阅读全文
摘要:
Bridge模式又称为Handle/Body模式。 在软件系统中,经常面临着“某些结构复杂的对象”的创建工作,由于需求的变化,这些对象经常面临着剧烈的变化,但是他们却拥有比较稳定一致的接口。大部分创建型模式,就是为了解决如何向“客户程序”隔离出“这些易变对象”,从而使得“依赖这些易变对象的客户程序... 阅读全文
摘要:
adapter pattern,又称wrapper(包装) pattern 在软件系统中,由于应用环境的变化,常常需要将“一些现存的对象”放在新的环境中应用,但是新环境要求的接口是这些现存对象所不满足的。Adapter设计模式就是为了应对这种“迁移的变化”,以使客户系统既能利用现有对象的良好实现... 阅读全文
摘要:
prototype pattern称为原型模式 在软件系统中,经常面临着“某些结构复杂的对象”的创建工作,由于需求的变化,这些对象经常面临着剧烈的变化,但是他们却拥有比较稳定一致的接口。Prototype设计模式,就是为了解决如何向“客户程序”隔离出“这些易变对象”,从而使得“依赖这些易变对象的... 阅读全文
摘要:
buildre pattern称建造者模式 Builder设计模式,提供一种封装机制来隔离出构成复杂对象的各个子对象的变化,从而保持系统中的相对稳定的将这些子对象组合在一起的算法不随着需求的改变而改变。 Separate the construction of a complex obje... 阅读全文
摘要:
abstract factory pattern,抽象工厂模式 抽象工厂模式是所有形态的工厂模式中最为抽象和最具一般性的一种形态。 Abstract Factory模式存在的意义就是为了创建各系列的对象而存在的。相对Factory Method模式的解决“单个对象”的需求变化,Abstra... 阅读全文
摘要:
factory mothed pattern,称工厂方法模式 首先我们看看Gof怎么定义工厂方法模式的: “Define an interface for creating an object, but let subclasses decide which class to instantiate... 阅读全文
摘要:
singleton pattern,又称单件模式,或者单例模式。singleton要求类有且仅有一个实例,并给其他对象提供这一实例。 控制类实例仅有一个,办法有两个: 1.私有化构造函数与copy构造函数,使用一个函数静态变量 1 #include 2 class People{ 3 ... 阅读全文
摘要:
大家可能对这个临时对象这个概念还不是很清楚,那么首先我们花一些时间来理解临时对象。首先看下面一端代码: 1 #include 2 void swap( int &a,int &b) 3 { 4 int temp; 5 temp=a; 6 a=b; 7 b=t... 阅读全文
摘要:
C++继承可以是单一继承或多重继承,每一个继承连接可以是public,protected,private也可以是virtual或non-virtual。然后是各个成员函数选项可以是virtual或non-virtual或pure virtual。本文仅仅作出一些关键点的验证。 public继承,... 阅读全文
摘要:
如果现在你做的C++项目(课题)包含的文件没有超过1000个,你可以选择略过此文,不过建议继续浏览。 如果你觉得重新编译文件的时间很短或者时间长一点无所谓,反正需要重新编译,那么你也可以选择略过此文,不过也建议浏览。 如果你想学习或者关心这块内容,那么此文必定会给你带来收获。 首先我不给出依存... 阅读全文
摘要:
1、最好不要使用引用返回值 有同学在传递的参数的时候使用引用方式传递,避免了临时对象的创建,提高了效率,那么在返回值的时候能不能使用引用呢? 看如下代码 class Rational{ public: Raional( int numerato... 阅读全文
摘要:
c++中编译器替我们完成了许多事情,我们可能不知道,但也可能习以为常。下面详细介绍 一、初始化与初始赋值 首先说说类的初始化与初始赋值之前的区别,这也许里面可能有我们不知道的事情。 其实类初始化与初始赋值还是有区别的。 1 class People{ 2 ... 阅读全文
摘要:
1.尽量用类的非成员函数以及友元函数替换类的成员函数 例如一个类来模拟人People 1 class People{2 public:3 ...4 void Getup( );5 void Was... 阅读全文
摘要:
首先说明invalid_argument是一个类(classinvalid_argument;),它的继承关系如下 exception-------->logic_error--------->invalid_argument invalid_argument原型是 1 class inval... 阅读全文
摘要:
为什么这么说呢?或许很多程序员已经习惯在文件开始使用大量的#define语句。例如:这里程序文件开头有如下#define语句 #define N 10 #define PI 3.14 #define MAX 10000 ... 阅读全文
摘要:
大多数园友可能对“#include”比较熟悉,因为我们写C/C++程序的时候都会写的字符串之一,但是它是具体怎么工作的?或者它的原理是什么呢?可能不太熟悉,也有可能没有去关心过。我们只关心程序能否正确运行,或者程序怎么实现等等一些问题。 这里笔者就为介绍下我们熟悉又不太熟悉的“#include”... 阅读全文
摘要:
题目:有12个外观完全一样的球,其中有一个球和其他球的重量不一致,如何使用一个天平称3次得出不一致的球是哪个? 笔者看到这题就立马想到将球分成3组,将其中的两组进行比较,然后如果不相等,就将重的那组进行两两划分,在比较,在将两个重的进行比较在进行比较。如果相等则将余下的那组进行比较。相信这里有不少园... 阅读全文
摘要:
最近好久没有写文章了,原因是笔者最近接了一个项目,另外去广东移动珠海分公司实习。这里是花了一天时间整理的关于Html5 Web App方向的调研。虽说Android 平台开发或者Mac os X 平台开发以及Windows Phone 7平台开发。开发的程序都只能在各自手机系统上运行,如果实现开发... 阅读全文
摘要:
KMP算法是字符串处理算法的一种经典算法。字符串中的一些算法在C++中需要编程者自己实现,在C#中的话String类的功能及其强大,编程者自己调用该类一些功能完成字符串处理。那么可能就导致错过这些字符串基本的经典算法。而在字符串处理这些算法中,KMP算法可谓是经典算法。 那么首先看下面一个一般求... 阅读全文
摘要:
编程基本算法(一) 编程基本算法(二) 编程基本算法(三) 选择排序 使用条件:可对比大小的集合。 算法思想:每一趟从待排序的数据元素中选出最小(或最大)的一个元素,顺序放在已排好序的数列的最后,直到全部待排序的数据元素排完。 举例编程:int b[10]={77,1... 阅读全文
摘要:
在写此文章之前,笔者想说说关于程序员的基本知识,好多园友在博客园上谈论自己的工作经历,或者给毕业生的建议,笔者很赞同期中园友建议在同学在学校里将计算机基础打好,没有良好基础怎么能建大厦呢?有了一些基础基本知识,在去学习深的理论就是事半功倍了,如果是先遇到深理论在去学习相关的基础,那就是事倍功半了。也... 阅读全文
摘要:
笔者好长时间没有更新博客了,一个原因是开发的项目所用到的技术都是老技术点,所接触到的知识都是行业逻辑流程,所以只是自己做了总结并没有拿上来分享。另外一个原因是目前笔者在重新学习C++语言以及计算机的一些基本知识(算法等)。 下面的代码为C++代码,好了直接进入正题 编程基本算法(一) 编程基... 阅读全文
摘要:
笔者前一阵子发表了一篇《ASP.NET调用.sql文件》文章,主要是是解决数据库配置,减去传统手工附加数据库和自己改写web.config文件等等这些复杂的过程,而是配置的向导。其中给出关键的技术知识点,就是通过sql数据库生成数据库脚本即.sql文件,然后通过调用osql.exe来执行.sql文... 阅读全文