- 博客(13)
- 资源 (14)
- 收藏
- 关注
原创 提供统一入口--外观模式
在软件开发中,有时候为了完成一项较为复杂的功能,一个类需要和多个其它类进行交互,而这些需要交互的其它类通常作为一个完整的整体出现,由于涉及的类比较多,导致使用时代码较为复杂,此时,特别需要一个类似服务员一样的角色,由它复杂和多个业务类交互,使用这些业务类的类只需要和该类交互即可。外观模式,通过引入一个新的外观类来实现该功能,外观类充当了软件系统的“服务员”,它为多个业务类的调用提供了统一的入口,简
2015-07-16 20:18:48 1549
原创 对象间的联动--观察者模式
随着交通信号灯的变化,汽车的行为也将随之变化,一盏交通信号灯可以指挥多辆汽车。在软件系统中,有些对象之间也存在类似交通信号灯和汽车之间的关系,一个对象状态或者行为的变化将导致其他对象的状态或者行为也发生变化,它们之间将产生联动。为了更好的描述对象之间存在的这种一对多(包括一对一)的联动,观察者模式应运而生,它定义对象之间一对多的依赖关系,让一个对象的改变能够影响其它对象。观察者模式概述
2015-07-15 15:05:01 1091 1
原创 扩展系统功能--装饰模式
对已有对象的功能进行扩展(装饰),以获得更加符合用户需求的对象,使得对象具有更加强大的功能,这就是装饰模式。基于继承的复用缺点:(1) 系统扩展麻烦,在某些编程语言中无法实现(多继承问题)。(2) 代码重复,不利于对系统进行修改和维护。(3) 系统庞大,类的数目非常多。装饰模式概述根据合成复用原则,在实现功能复用时,多用关联(组合),少用继承。装饰类作用
2015-07-14 20:18:07 1080
原创 产品蔟的创建--抽象工厂模式
工厂方法模式通过引入工厂等级结构,解决了简单工厂模式中工厂类职责过重的问题,但由于工厂方法模式中每个工厂只生产一类产品,可能会导致系统中存在大量的工厂类,势必会增加系统的开销。此时,可以考虑将一些相关的产品组成一个“产品蔟”,由同一个工厂统一生产,这就是抽象工厂模式的基本思想。产品等级结构和产品蔟有时候希望一个工厂可以提供多个产品对象,而不是单一的产品对象。例如一个电器工厂,它
2015-07-13 22:00:16 1133
原创 多态工厂的实现--工厂方法模式
工厂方法模式概述在工厂方法模式中,不再提供一个统一的工厂类来创建所有的产品对象,而是针对不同的产品提供不同的工厂,系统提供一个与产品等级结构对应的工厂等级结构。工厂方法模式提供一个抽象工厂接口来声明抽象工厂方法,而尤其子类来具体实现工厂方法,创建具体的产品对象。工厂方法模式结构工厂模式结构图中包含以下4个角色。(1) 抽象产品:它是定义产品的接口
2015-07-13 19:17:16 1535
原创 集中式工厂的实现--简单工厂模式
简单工厂模式概述首先讲需要创建的各种不同对象的相关代码封装到不同的类中,这些类称为具体产品类,而将它们公共的代码进行抽象和提取后封装在一个抽象产品类中,每一个具体产品类是抽象产品类的子类;然后提供一个工厂类用于创建各种产品,在工厂类中提供一个创建产品的工厂方法,该方法可以很据所传入的参数不同创建不同的具体产品对象;客户端只需要调用工厂类的工厂方法并传入相应的参数即可以得到一个产品对象。简单
2015-07-13 16:03:41 851
原创 统计一个文件英文单词的个数
/* 统计一个文件内,英文单词的个数,并按 word = count的格式顺序输出 统计输出总的英文单词个数*/#include #include #include #include #include using namespace std;int main(){ string line; //打开输入文件 ifstream input("transform.txt"
2015-07-08 14:53:51 4606
原创 一元多项式化简
背景:编程实现如下功能:对输入的一元多项式,进行同类项合并,并按指数降序排序,输出处理后的一元多项式。 说明: l 多项式由若干个单项式组成,单项式之间为加、减(+,-)关系。l 单项式指数字与字母幂的乘积构成的代数式。对一元多项式,字母只有一种。l 同类项合并指将多项式中指数相同的单项式,系数经过加减求和,合并为一个单项式。按指数降序指多项式中,单项式按指数从大到小顺序相
2015-07-07 19:22:48 4577
原创 二维数组的列排序
给出一个二维数组,请将这个二维数组按第i列(i从1开始)排序,如果第i列相同,则对相同的行按第i+1列的元素排序,如果第i+1列的元素也相同,则继续比较第i+2列,以此类推,直到最后一列。如果第i列到最后一列都相同,则按原序排列。
2015-07-05 22:00:11 4543
原创 八皇后问题(C语言版本)
八皇后问题是一个古老而著名的问题,是回溯算法的典型例题。该问题是十九世纪著名的数学家高斯1850年提出:在8X8格的国际象棋上摆放八个皇后,使其不能互相攻击,即任意两个皇后都不能处于同一行、同一列或同一斜线上,问有多少种摆法。
2015-07-05 15:10:31 40315 15
原创 对容器元素重新排序的算法
假设我们要分析一组儿童故事中使用的单词,例如想知道他们使用了多少个6个或者以上字母组成的单词。每个单词只统计一次,不考虑它出现的次数。程序代码如下:#include #include #include #include using namespace std;//comparison function to be userd to sort by word lengthbool
2015-07-04 19:40:43 1171
原创 c++ 单词转换 map对象
#include #include #include #include #include #include using namespace std;ifstream& openfile(ifstream &in,const string &filename){ in.close();//close in case it was alrady open in.clear();//
2015-07-02 17:01:34 1132
数据挖掘导论 清晰版
2014-05-06
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人