自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(311)
  • 收藏
  • 关注

原创 java模式之观察者模式

观察者模式是对象的行为模式,顾名思义,即存在观察者和被观察者。 观察者模式可以让多个观察者同时监听同一个被观察对象,当被观察对象发生变化时,并通知所有观察者,使各个观察者能作出相应的响应。适当地运用观察者模式,能提高自身代码的设计水平。  观察者模式理解和编码都比较简单,通常包括以下步骤:  1. 设计观察者接口类;  2. 观察者类实现该接口;  3. 设计被观察者抽象类,该...

2012-11-21 16:49:42 186

原创 精解Java中代理模式的实现

  简介摘要: 代理模式是GOF设计模式中的一种,常用于权限模块的架构设计,其根本的原理是通过将一个代理对象交给调用者,使得调用者不能直接使用相应的功能模块,所 有的调用被传递给代理对象,代理对象负责对真实模块完成调用,在调用者与被调用者之间建立了一个隔离带,我们可以使 代理模式是GOF设计模式中的一种,常用于权限模块的架构设计,其根本的原理是通过将一个代理对象交给调用者,使得调用者不能直接使...

2012-11-21 16:48:41 149

原创 Java中的模式 --工厂模式

工厂模式主要负责将大量有共通接口的类实例化,工场模式有以下几种形态简单工厂(Simple Factory) 又称 静态工厂方法(Static Factory Method)工厂方法(Factory Method) 又称 多态性工厂(Polymorphic Factory)抽象工厂(Abstract Factory) 又称 工具箱(Kit or Toolkit)先...

2012-11-21 16:48:13 170

原创 12种行为模式 之8 MEDIATOR 调停者模式

8、MEDIATOR调停者模式:没使用调停者模式 : 一个过度耦合的系统 : 网状结构使用调停者模式 后 : 以调停者为 中心的星状结构/** * User: liuwentao@wentao365.com * Date: 2008-12-9 Time: 15:24:28 * * note: 调停者角色 */abst...

2012-11-21 16:47:46 168

原创 java简单工厂模式

(缺点:每增加一个具体产品时 ,就要修改工厂方法,工厂方法负责了所有具体产品的创建)举个例子:------------------public interface Fruit { void grow(); void harvest(); void plant();}-------------------public class Apple i...

2012-11-21 16:46:46 104

原创 关于Java 23种设计模式的有趣见解

  在网络上流畅很广的一篇旧文,暂时没找到原作者,作者用轻松的语言,形象解释了 23 种模式,有很好的启发作用。  创建型模式  1、FACTORY—追MM少不了请吃饭了,麦当劳的鸡翅和肯德基的鸡翅都是MM爱吃的东西,虽然口味有所不同,但不管你带MM去麦当劳或肯德基,只管向服务员说“来四个鸡翅”就行了。麦当劳和肯德基就是生产鸡翅的Factory  工厂模式:客户类和工厂...

2012-11-20 23:03:24 102

原创 Java设计模式使用率爬行榜

Java设计模式使用率爬行榜使用频率 所属类型 模式名称 模式 简单定义5 创建型 Singleton 单件 保证一个类只有一个实例,并提供一个访问它的全局访问点。5 结构型 Composite 组合模式 将对象组合成树形结构以表示部分整体的关系,Composite使得用户对单个对象和组合对象的使用具有一致性。5 结构型 FACADE 外观 为子系统中的一组接口提供一致的界面,...

2012-11-20 23:02:30 108

原创 需要掌握的JAVA设计模式 Posted on 2011-02-22 10:19 edsion 阅读(91) 评论(0) 编辑 收藏 所属分类: 设计模式 ...

需要掌握的JAVA设计模式 设计模式是面向对象思想的集大成,GOF在其经典著作中总结了23种设计模式,又可分为:创建型、结构型和行为型3个大类。对于软件设计者来说,一般的过程就是在熟练掌握语言背景的基础上,了解类库的大致框架和常用的函数和接口等,然后多再在百般锤炼中,提高对软件设计思想的认识。 软件设计者要清楚自己的定位和方向,一味的沉溺于技术细节的思路是制约个人...

2012-11-20 23:02:04 157

原创 Java 设计模式与建模专题-Java 建模

统一建模语言(UML)基础 Java 建模:UML 工作簿 Java 建模:子整体软件开发 Java 建模语言(Java Modeling Language,JML)本专题为 Java 软件工程师们提供了面向 Java 的设计模式和建模方面相关的文章和教程。帮助读者理解、学习作为专业软件工程师必需掌握的设计模式与建模技术。统一建模语言(UML)基础...

2012-11-20 23:00:42 315

原创 Java设计模式之综述篇

自从J2EE出现以来,就大大简化了在Java下的企业级开发。但是随着J2EE越来越普遍地被应用到各个领域中,开发者们渐渐意识到需要一种方法来标准化应用程序的开发过程,他们采用的方法是标准化应用程序的结构层。在结构层通常封装了一些独立于业务逻辑的复杂技术,以便在业务逻辑和底层的架构之间建立起弱连接。在个专题中将会介绍一些设计模式,通过利用这些设计模式,开发人员可以达到标准化和简化应用程序开发过程...

2012-11-20 22:59:20 117

原创 MFC集合类

 [cpp] view plaincopyclass CPoint3D  {  public:        CPoint3D()        {              x=y=z=0;        }        CPoint3D(int xPos,int yPos,int zPos)        {     ...

2012-11-18 12:13:45 121

原创 C++ static、const和static const 以及它们的初始化

const定义的常量在超出其作用域之后其空间会被释放,而static定义的静态常量在函数执行后不会释放其存储空间。      static表示的是静态的。类的静态成员函数、静态成员变量是和类相关的,而不是和类的具体对象相关的。即使没有具体对象,也能调用类的静态成员函数和成员变量。一般类的静态函数几乎就是一个全局函数,只不过它的作用域限于包含它的文件中。      在C++中,stat...

2012-11-18 12:12:45 112

原创 C++重要性质2!

1、你一定想知道虚函数是怎么做出来的,对不对?      如果能够了解 C++编译器 对于 虚函数 的实现方式,我们就能够知道为什么虚函数可以做到动态绑定。为了达到动态绑定的目的,C++编译器通过某个表格,在执行期“间接”调用实际上欲绑定的函数。这样的表格称为 虚函数表(vtable)。每一个内含虚函数的类,编译器都会为它做出一个虚函数表,表中的每一个元素都指向一个虚函数的地址。此外,编...

2012-11-18 12:11:29 111

原创 C++的多态性实现机制剖析

1、多态性和虚函数我们先看一个例子: [cpp] view plaincopy#include<iostream.h>  class animal  {  public:      void sleep()      {          cout<<"animal sleep"<<endl;...

2012-11-18 12:11:02 89

原创 C++的重要性质!

 C++是一种扭转程序员思维模式的语言,一个人思维模式的扭转,不可能轻而易举一蹴而就。C++是最重要的面向对象语言,因为它站在C语言的肩膀上,而C语言拥有绝对多数的使用者,C++并非纯粹的面向对象程序语言,但有时候混血并不是坏事,纯种不见得就有多好。(所谓纯面向对象语言,是指不管什么东西,都应该存在于对象之中,java就是纯面向对象语言)。C++语言范围何其广大,这部分主题的挑选完全是以...

2012-11-18 12:09:48 144

C++编程规范---第10章 类的继承与组合

对象(Object)是类(Class)的一个实例(Instance)。如果将对象比作房子,那么类就是房子的设计图纸。所以面向对象设计的重点是类的设计,而不是对象的设计。对于C++程序而言,设计孤立的类是比较容易的,难的是正确设计基类及其派生类。本章仅仅论述“继承”(Inheritance)和“组合”(Composition)的概念。注意,当前面向对象技术的应用热点是COM和CORBA,...

2012-11-18 11:31:00 139

C++编程规范---第11章 其它编程经验

11.1使用const提高函数的健壮性看到const关键字,C++程序员首先想到的可能是const常量。这可不是良好的条件反射。如果只知道用const定义常量,那么相当于把火药仅用于制作鞭炮。const更大的魅力是它可以修饰函数的参数、返回值,甚至函数的定义体。const是constant的缩写,“恒定不变”的意思。被const修饰的东西都受到强制保护,可以预防意外的变动,能提高程...

2012-11-18 11:30:00 89

遗传算法入门

遗传算法入门遗传算法遗传算法(Genetic Algorithm, GA)是近几年发展起来的一种崭新的全局优化算法。1962年霍兰德(Holland)教授首次提出了GA算法的思想,它借用了仿真生物遗传学和自然选择机理,通过自然选择、遗传、变异等作用机制,实现各个个体的适应性的提高。从某种程度上说遗传算法是对生物进化过程进行的数学方式仿真。这一点体现了自然界中"物竞天...

2012-11-18 11:24:00 521

堆排序

1、 堆排序定义n个关键字序列Kl,K2,…,Kn称为堆,当且仅当该序列满足如下性质(简称为堆性质):(1) ki≤K2i且ki≤K2i+1 或(2)Ki≥K2i且ki≥K2i+1(1≤i≤ )若将此序列所存储的向量R[1..n]看做是一棵完全二叉树的存储结构,则堆实质上是满足如下性质的完全二叉树:树中任一非叶结点的关键字均不大于(或不小于)其左右孩子(若存在)结点的关键字。【例】关键字序列(10...

2012-11-18 11:23:00 116

银行家算法

算法的实现一、初始化由用户输入数据,分别对可利用资源向量矩阵AVAILABLE、最大需求矩阵MAX、分配矩阵ALLOCATION、需求矩阵NEED赋值。二、银行家算法在避免死锁的方法中,所施加的限制条件较弱,有可能获得令人满意的系统性能。在该方法中把系统的状态分为安全状态和不安全状态,只要能使系统始终都处于安全状态,便可以避免发生死锁。银行家算法的基...

2012-11-18 11:23:00 351

多重背包O(N*V)算法详解(使用单调队列)

多重背包O(N*V)算法详解(使用单调队列)多重背包问题:有N种物品和容量为V的背包,若第i种物品,容量为v[i],价值为w[i],共有n[i]件。怎样装才能使背包内的物品总价值最大?网上关于“多重背包”的资料倒是不少,但是关于怎么实现O(N*V)算法的资料,真得好少呀,关于“单调队列”那部分算法,又没说明得很清楚,看了几遍没看懂原理,只好自己动脑去想怎么实现O(N*V)算法。...

2012-11-18 11:22:00 144

CListCtrl控件列表控件使用大全

创建图形列表并和CListCtrl关联:m_image_list.Create(IDB_CALLER2, 16, 10, RGB(192,192, 192));m_image_list.SetBkColor( GetSysColor( COLOR_WINDOW ) );m_caller_list.SetImageList( &m_image_list, LVSIL_SMAL...

2012-11-18 11:20:00 204

C++之构造函数

1.功能:创建(build objects)对象,将一连串的随意的内存位变对象,也分配资源(memory, files, semaphores, sockets等),"ctor" 是构造函数(constructor)典型的缩写。2.假定List是个类名,Listx和Listx()的区别:前者声明了一个List对象,后者则是一个函数,返回List类型。3.能否在一个构造函数中调用另一个构造函数?...

2012-11-18 11:17:00 134

二叉树遍历算法集合(前中后序遍历的递归和非递归算法,层序遍历算法)

二叉树遍历算法集合(前中后序遍历的递归和非递归算法,层序遍历算法)费了两天时间写的,包括前中后序遍历的递归和非递归算法,还有层序遍历总共2*3 + 1 = 7中遍历二叉树的算法,感觉其中后序遍历的非递归算法比较困难,想了很久最后的实现还是不够优雅,请大家指正~~总共三个文件,一个头文件,一个对应的cpp文件,还有一个用于测试的文件.头文件:/*************...

2012-11-18 11:14:00 96

stl的算法(一):对序列进行只读操作(查找、搜索等)

stl的算法(一):对序列进行只读操作(查找、搜索等)Stl的算法的不更改序列操作主要有以下12项:for_each、find、find_if、find_end、find_first_of、adjacent_findcount、count_if、mismatch、equal、search、search_n1、 for_each:遍历某个区域内每个元素原型:templat...

2012-11-18 11:13:00 136

STL算法(Algorithms):排序

一、sort:对一定范围内的所有元素排序原型:template <class RandomAccessIterator>void sort ( RandomAccessIterator first, RandomAccessIterator last );template <class RandomAccessIterator, class Compare>...

2012-11-18 11:12:00 106

STL算法(Algorithms):极值

STL算法(Algorithms):极值1、min:返回两个两个参数中的最小值原型:template <class T> const T& min ( const T& a, const T& b );template <class T, class Compare> const T& min ( const T&...

2012-11-18 11:12:00 139

STL算法(Algorithms):堆(heap)

1、make_heap:使序列变成堆原型:template <class RandomAccessIterator> void make_heap ( RandomAccessIterator first, RandomAccessIterator last );template <class RandomAccessIterator, class Compare> voi...

2012-11-18 11:12:00 107

STL算法(Algorithms):修改操作(拷贝、替换等)

Stl的函数对象的写操作:copy、copy_backward、swap、swap_ranges、iter_swap、transform、replace、replace_if、replace_copy、replace_copy_if、fill、fill_n、generate、generate_n、remove、remove_if、remove_copy、remove_copy_if...

2012-11-18 11:11:00 169

STL算法(Algorithms):合并(Merge)

1、merge:将两个序列合并成一个新的序列,并对新的序列排序原型:template <class InputIterator1, class InputIterator2, class OutputIterator> OutputIterator merge ( InputIterator1 first1, InputIterator1 last1, InputI...

2012-11-18 11:08:00 364

SVM入门

SVM入门(一)至(三)Refresh按:之前的文章重新汇编一下,修改了一些错误和不当的说法,一起复习,然后继续SVM之旅.(一)SVM的简介支持向量机(Support Vector Machine)是Cortes和Vapnik于1995年首先提出的,它在解决小样本、非线性及高维模式识别中表现出许多特有的优势,并能够推广应用到函数拟合等其他机器学习问题中[10]。支...

2012-11-18 11:07:00 71

CString常用方法解释举例 CString详解

1.CString::IsEmptyBOOL IsEmpty( ) const;返回值:如果CString 对象的长度为0,则返回非零值;否则返回0。说明:此成员函数用来测试一个CString 对象是否是空的。示例:下面的例子说明了如何使用CString::IsEmpty。// CString::IsEmpty 示例CString s;ASSERT( s.IsE...

2012-11-18 11:06:00 343

CString/String/int/wchar/char类型相转 CString各种类型相互转换小结

1.头文件中要定义宏;<wbr><wbr><wbr><wbr><wbr>#define<wbr><wbr>UNICODE<br><wbr><wbr><wbr><wbr>&a

2012-11-18 10:50:00 102

KMP字符串模式匹配详解

KMP字符串模式匹配通俗点说就是一种在一个字符串中定位另一个串的高效算法。简单匹配算法的时间复杂度为O(m*n);KMP匹配算法。可以证明它的时间复杂度为O(m+n).。一.简单匹配算法先来看一个简单匹配算法的函数:int Index_BF ( char S [ ], char T [ ], int pos ){/*若串S中从第pos(S的下标0≤pos<StrLen...

2012-11-18 10:47:00 75

MD5算法的C++实现

1. IntroductionMD5算法是一种消息摘要算法(Message Digest Algorithm),此算法以任意长度的信息(message)作为输入进行计算,产生一个128-bit(16-byte)的指纹或报文摘要(fingerprint or message digest)。两个不同的message产生相同message digest的几率相当小,从一个给定的message ...

2012-11-18 10:46:00 115

数据挖掘算法-Apriori Algorithm(关联规则)

本人刚开始学数据挖掘,虽然之前看过一本《数据挖掘原理与应用:SQL Server 2005数据库》,但是只是大体上了解了一些数据挖掘的概念,并没有深入去了解一个算法。前段时间开始比较深入的学习,就以关联规则作为学习的入口点。这 才有了这篇文章。  Apriori algorithm是关联规则里一项基本算法。是由Rakesh Agrawal和Ramakrishnan Srikant两位博...

2012-11-10 16:11:00 97

机器学习中的算法(2)-支持向量机(SVM)基础

关于SVM的论文、书籍都非常的多,引用强哥的话“SVM是让应用数学家真正得到应用的一种算法”。SVM对于大部分的普通人来说,要完全理解其中的数学是非常困难的,所以要让这些普通人理解,得要把里面的数学知识用简单的语言去讲解才行。而且想明白了这些数学,对学习其他的内容也是大有裨益的。我就是属于绝大多数的普通人,为了看明白SVM,看了不少的资料,这里把我的心得分享分享。 其实现在能够找到的,...

2012-11-10 16:08:00 89

最短路径算法——Dijkstra算法

最短路径算法——Dijkstra算法Dijkstra算法在刚开始在学数据结构的时候,完全没弄明白,主要是也不怎么想去弄明白。而从学校出来到现在,最短路径算法都没有实际运用过,最近在一个GIS项目中总算用到了,于是乎把教材重温了下,同时查阅了网上一些资料,借鉴了一些别人的东西,并顺利用写进了项目中,文中的主要代码来自于园子里的一位大哥,这位大哥对通用框架的研究很深入,他的链接为:http://z...

2012-11-10 16:07:00 126

贪婪算法

本章首先引入最优化的概念,然后介绍一种直观的问题求解方法:贪婪算法。最后,应用该算法给出货箱装船问题、背包问题、拓扑排序问题、二分覆盖问题、最短路径问题、最小代价生成树等问题的求解方案。1.1 最优化问题 本章及后续章节中的许多例子都是最优化问题( optimization problem),每个最优化问题都包含一组限制条件( c o n s t r a i n t)和一个优化函数...

2012-11-10 16:06:00 132

全排列

全排列是将一组数按一定顺序进行排列,如果这组数有n个,那么全排列数为n!个。现以{1, 2, 3, 4, 5}为例说明如何编写全排列的递归算法。1、首先看最后两个数4, 5。 它们的全排列为4 5和5 4, 即以4开头的5的全排列和以5开头的4的全排列。由于一个数的全排列就是其本身,从而得到以上结果。2、再看后三个数3, 4, 5。它们的全排列为3 4 5、3 5 4、 4 3...

2012-11-10 16:06:00 71

空空如也

空空如也

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

TA关注的人

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