自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(32)
  • 资源 (16)
  • 收藏
  • 关注

原创 libra共识算法分析

核心算法说明 基于chained实现,整体上是当前轮推动下一轮共识继续下去, 如此来持续运转下去, 数据有效性证明基于(QC)实现 leader广播proposal消息{round, qc, propsal} replica收到proposal后本地计算后发送投票信息到下一个leader 下一个leader负责聚合(qc_aggrate)后再通过proposal消息广播...

2020-03-13 20:51:13 456

原创 设计模式学习-Template Method(模板方法)

<br /> <br />意图:定义一个操作中的算法的骨架,而将一些步骤 延迟到子类中<br />适用性:<br />一次性实现算法的不变部分,并将可变的行为留给子类实现<br />各自类中的公共的行为应被提取出来并集中到一个公共父类中以避免代码重复<br />控制子类扩展,模板方法只在特定点调用”hook”操作<br />示例图:<br /><br />示例代码:<br />//算法实现中包含公共部分<br />virtual void Calc()<br />{<br />    _tprintf(_T

2011-05-23 23:01:00 406

原创 设计模式学习-Bridge(桥接)

<br /> <br />意图:将抽象部分和它的实现部分分离,使得它们都可以独立的变化<br />适用性:<br />不希望抽象和实现部分有一个固定的绑定关系<br />类的抽象以及它的实现可以通过生成子类的方法加以扩充<br />对一个抽象的实现部分的修改应对客户不产生影响<br />你对客户晚产隐藏抽象的实现部分<br />示例图:<br /><br />示例代码:<br />//瓶子装液体,摇晃瓶子,液体跟着荡漾<br />//填充液体<br />void CBottle::Fill(CLiquid*

2011-05-23 22:36:00 385

原创 设计模式学习—Strategy(策略)

意图:定义一系列的算法,把他们一一封装起来,使得他们可以互相替代,使得算法可以独立于对象的变化适用性:许多相关的类仅仅是行为有异。“策略”提供了一种用多个行为中的一个行为来配置一个类的方法。 需要使用一个算法的不同变体。例如,你可能会定义一些反映不同的空间/时间权衡的算法。当这些变体实现为一个算法的类层次时[ H O 8 7 ] ,可以使用策略模式。 算法使用客户不应该知道的数据。可使用策略模式以避免暴露复杂的、与算法相关的数据结构。 一个类定义了多种行为, 并且这些行为在这个类的操作中以多

2011-05-19 10:53:00 423

原创 设计模式学习—Obeserver(观察者)

<br /><br />意图:定义对象的一种一对多的依赖关系,当一个对象的状态发生改变时,所以依赖于它的对象都要得到通知并且自动更新<br /> <br />适用性:<br /> <br />一个对象依赖于另外一个对象时,将这两者封装在独立的对象中以使它们各自独立地改变和使用<br /> <br />当对一个对象的改变需要同时改变其它对象而不知道具体有多少对象有待改变<br /> <br />当一个对象必须通知其它对象,而它又不能假设其它对象是谁。换言之,你不希望这些对象时紧密耦合的。<br /> <br

2011-05-15 22:54:00 427

原创 设计模式学习-Memento(备忘录)

意图:在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,这样以后就可将该对象恢复到原先保存的状态。一个备忘录(Memento)是一个对象,它存储另一个对象在某个瞬间的内部状态,而后者称为备忘录的原发器(Originator)适用性:必须保持某个对象在某个时刻的状态如果一个用接口来让其它对象这节得到这些状态,将会暴露对象的实现细节并破坏对象的封装性示例图:示例代码://线条类class CLine{public:    CLine(LineState STATE);public:

2011-05-15 22:45:00 446

原创 设计模式学习—Mediator(中介者)

意图:用一个中介对象来封装一系列的独享交互。中介者使得各对象不需要显式的相互引用,从而使得其耦合松散,而且可以独立的改变他们之间的交互.适用性:一组对象以定义好,但是通信复杂,相互依赖关系结构混乱一个对象引用其他对象并且直接通信想定制一个分布在多个类中的行为,但是又不想定义多个子类示例图:示例程序://信息变化之后通知中介者,中介者来调用相关对象进行相应的控制class CMediator{public:    CMediator();public:    ~CMediator(void);    pu

2011-05-15 16:36:00 362

原创 设计模式学习—Iterator(迭代器)

<br /><br />意图:提供一种方法顺序访问一个聚合对象中各个元素,而不需要暴露该对象的内部表示<br />适用性:<br />访问一个聚合类而无需暴露它的内部表示<br />支持对聚合对象的多种遍历<br />为遍历不同的聚合结构提供一个统一的接口<br />示例图:<br />示例代码:<br />个人观点可以参见stl的list/set/map等….

2011-05-15 15:46:00 340

原创 设计模式学习—Interpreter(解释器)

<br /><br />意图:给定一个语言,定义它的文法表示,并定义一个解释器,这个解释器使用该标识来解释语言中的句子。如果一种特定类型的问题发生的频率足够高,那么就可值得将该问题的各个实例表述为一个简单语言的句子,这样就可以构建一个解释器,该解释器通过解释这些句子来解决该问题。解释器模式使用类来表达每一条文法规则,在规则右边的符号是这些类的实例变量。<br />适用性:<br />当有一个语言需要解释执行,并且你可将该语言中的句子表示为一个抽象语法树,可以使用解释器模式。而当存在以下情况时该模式效果最好<

2011-05-15 15:21:00 401

原创 设计模式学习-Prototype(原型)

<br /><br />意图:用原型示例指定创建对象的种类,通过拷贝这些原型创建新的对象<br />适用性:<br />当实例化的类是在运行时指定时<br />为了避免创建一个与产品类平行的工厂类<br />当一个类的示例只能有几个不同状态组合中的一种时<br />示例图:<br /><br />示例代码:<br />#pragma once<br />//孙悟空一变二二变四…<br />class CMonkeyKing<br />{<br />public:<br />    CMonkeyKing(i

2011-05-14 11:27:00 517

原创 设计模式学习-Factory Method(工厂方法)

<br /><br />意图:定义一个用于创建对象的接口,让子类决定实例化哪个类<br />适用性:<br />当一个类不知道它所必须创建的类的对象时<br />当一个类希望由它的子类来制定它所创建的对象的时候<br />当类将创建对象的职责委托给多个帮助子类的一个是,并且你希望将哪一个帮助子类是代理者这一信息局部化的时候<br />示例图:<br /><br />示例代码: <br />//工厂根据产品id生产产品<br />class CFactory<br />{<br />public:<br />

2011-05-14 11:02:00 346

原创 设计模式学习-Command(命令)

<br /><br />意图:讲一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化,对请求排队或者记录请求日志,以及支持可撤销的操作.<br />通过将请求本身变成一个对象来使工具箱对象可向未指定的应用对象提出请求<br />适用性:<br />抽象出待执行的动作以参数化某对象,可以通过回调函数表达这种参数化<br />支持取消操作(UnExecute)<br />示例图:<br /><br />示例代码:<br />#pragma once<br />#include "Move.h"<br

2011-05-14 10:34:00 401

原创 设计模式学习-Chain Of Responsiblity(责任链)

<br /><br />意图:使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系.将这些对象连成一条链,并沿着这条链传递请求,直到一个对象处理它为止.<br />适用性:<br />有多个对象可以处理一个请求,那个对象处理该请求运行时自动确定<br />你想在不明确制定接受者的情况下,向多个对象中的一个提交一个请求<br />可处理一个请求的对象集合应被动态指定<br />示例图:<br /><br />示例代码:<br />class CHandler<br />{<br />publ

2011-05-14 09:52:00 455

原创 设计模式学习-Proxy(代理模式)

<br /> <br />意图:为其他对象提供一种代理以控制对这个对象的访问<br />动机:为了只有在我们确实需要这个对象时才对它进行创建和初始化用一个proxy替代那个对象并在需要的时候实例化这个对象<br />适用性:在需要用比较通用和复杂的对象指针代替简单的指针的时候,使用代理(Proxy)模式<br />示例图:<br /><br />听众听人演讲,演讲者通过扩音器来演说,扩音器起来的了一个中间代理的作用.<br />示例代码:<br />//演讲者基类<br />class CSpeaker<b

2011-05-13 00:16:00 403

原创 设计模式学习-Builder(生成器

意图:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示示意图:适用性:当创建复杂对象的算法应该独立于该对象的组成部分以及它们的装配方式时当构造过程必须允许被构造的对象有不同的表示时示例代码://部件类class CPart{public:    CPart(void);public:    ~CPart(void);public:    virtual void Build()=0;    virtual void Display()=0;};//部件Aclass CPart

2011-05-12 00:02:00 418

原创 设计模式学习-FLYWEIGH(享元)

<br /><br />意图:运用共享技术有效地支持大量细粒度的对象,FLYWEIGHT对那些通常因为数量太多而难以用对象来表示的概念或者实体进行建模.<br />示意图:<br /><br />适用性:<br />对象可以被共享使用的情况<br />示例代码:<br />//flyweight类<br />class CPerson<br />{<br />public:<br />    CPerson(int id)<br />    {<br />        m_id = id;<br />

2011-05-11 22:48:00 372

原创 设计模式学习-Facade(外观)

意图:为子系统中的一组接口提供一个一致的界面.定义一个高层接口,该接口是的这一个子系统的更加容易使用.动机:是的子系统之间的通信和相互依赖达到最小,达到该目的的途径之一就是引入一个外观(Facade)对象,它为子系统中较为一般的设施提供了一个单一而简单的界面.示例图:Facade作为生态子系统的统一界面用于外接交互适用性:为复杂子系统提供一个简单接口Facade提供了客户与子系统以及其他子系统的分离为各个自系统提供每层的入口点.示例代码://生态子系统的Facade类作为外部接口的界面,内部子系统的复杂构建

2011-05-11 00:59:00 329

原创 设计模式学习-Decorator(装饰)

<br /> <br />意图:动态的为一个对象添加一些额外的职责,Decorator比子类更加灵活<br />示例图:<br /><br /><br />适用性:<br />在不影响对象的情况下,以动态,透明的方式给单个对象添加职责<br />处理那些可以撤销的职责<br />但不能使用子类进行扩充时/类被隐藏/类定义不能生成子类…<br />注意事项:<br />装饰对象的接口必须与它所装饰的Component的接口一致<br />示例代码:<br />//Compnent同时也是基类<br />cla

2011-05-10 22:07:00 365

原创 设计模式学习-Composite(组合模式)

<br /><br />意图:将对象组合成树型结构以表示”部分-整体”的层次结构。Composite使得用户对于单个对象和组合对象的使用具有一致性<br />Compoite模式的关键是一个抽象类,即表示具体类也表示容器.<br />示意图:<br /><br />适用性:<br />你想表示对象的部分-整体层次结构<br />你希望用户忽略组合对象和单个对象的不同,用户将统一的使用组合结构中的所有对象<br />示例代码:<br />animal:单个对象<br />//单个动物实体<br />class

2011-05-09 23:57:00 454

原创 设计模式学习-抽象工厂(Abstract Factory)

意图:为一系列相关对象或相互依赖对象提供一个创建接口.示意图:AbstractFactory为创建对象声明一个接口,真正创建对象由ConcreteFactory(FactoryA/FactoryB)实现.一个具体的工厂将为每个产品中定义该工厂方法以指定产品.适用性:一个系统要独立于他的产品的创建,组合和表示时一个系统要由多个产品系列中的一个配置时当你强调一系列相关的产品对象的设计以便进行联合使用时当你提供一个产品类库,而只想显示它们的接口而不是实现时代码示例:client://具体创建何种产品有Factor

2011-05-09 22:36:00 339

原创 Struts tag-初体验

<br /><br />在页面头添加<br /><%@ taglibprefix="s" uri="/struts-tags"%><br />页面中添加相应的tag<br />s:password<br />密码<br />s:checkbox<br />Checkbox<br />s:submit<br />提交按钮<br />s:reset<br />重置按钮<br />s:form<br />Form<br />s:set<br />设置某个值s:set name="lastName" va

2011-03-07 13:53:00 351

原创 Spring Security初体验--使用LDAP认证

1配置认证方式为LDAPclass="org.springframework.security.ldap.authentication.LdapAuthenticationProvider">class="org.springframework.security.ldap.authentication.BindAuthenticator">CN={0},CN=Users

2011-03-04 14:34:00 2254

原创 MyEclipse安装GWT插件

最近开始研究 GWT,但是按照google code中的描述进行联网安装gwt/gwt designer plugin总是失败.无奈之下只能google如何下载并安装了.google之后总算有了眉目,在这里记录以备以后查看。1,下载gpe,并安装.2,下载gwt3,下载gwt plugin:http://code.google.com/intl/zh-CN/eclipse/docs/install-from-zip.html(此处为离线版本)4,安装MyEclipse5,配置gwt plugin到Myecl

2011-02-20 17:24:00 3747 1

翻译 Spring Security初体验

1,配置过滤器为了在项目中使用SpringSecurity控制权限,首先要在web.xml中配置过滤器,这样我们就可以控制对这个项目的每个请求了。springSecurityFilterChainorg.springframework.web.filter.DelegatingFilterProxyspringSecurityFilterChain/*2,使用命名空间在ApplicationContext.XML中配置或者另外单独使用一个Securit

2011-01-12 16:42:00 2054

原创 Struts tiles初体验

<br /><br />1,创建web project<br />2,定义tiles.xml<br />内容如下:<br /><?xmlversion="1.0" encoding="UTF-8"standalone="no"?><br /><!DOCTYPE tiles-definitionsSYSTEM"C:/JavaDemo/dbDemo/userInfoWeb/WebRoot/WEB-INF/tiles-config_2_1.dtd"><br /><tiles-definitions><

2011-01-09 21:14:00 517

原创 MyEclipse SSH初体验

<br /> <br />17:44<br />SSH即Struts+spring+hibernate框架.<br />本次体验使用的Struts2+spring3+hibernate3<br />1,创建ssh工程.<br /><br />2,添加hibernate访问数据库<br />Windows->show view->dbExplorer<br />●创建db连接,本次体验使用mysql作为体验数据库,其他数据库应该类似<br /><br />●选择配置的连接右键->openconnection建

2011-01-05 19:36:00 705

原创 Tomcat配置

在安装配置之前你应该已经安装了JDK6.0或更高版本,并且已经配置了PASH和CLASSASH环境变量。如没有请到sun的官网下载。1.下载安装tomcat。2.配置环境变量。计算机---属性----高级系统设置----环境变量。     在系统变量中新建JAVA_HOME, 值是你的java安装路径,比如我的    C:/Program Files/Java/jdk1.6.0_21      。(无句号)     在系统变量中新建CATALINA_HOME, 值是你的tomcat安装路径,比如我的   

2011-01-04 21:21:00 414

转载 面向对象设计的原则---------迪米特原则(转)

<br /><br />迪米特原则(Law of Demeter)<br />1、迪米特原则的定义<br />      迪米特原则也叫最少知识原则(Least Knowledge Principle, LKP)简单的说,就是如果两个类不必彼此直接通信,那么这两个类就不应当发生直接的相互作用。如果一个类需要调用类另一个类的某个方法的话,应当通过第三个类来转发调用。迪米特法则可以简单说成:talk only to your immediate friends。<br />2、迪米特原则解释<br />    

2010-12-13 16:45:00 331

转载 程序人生箴言(转)

<br /><br />原文作者乔纳森·丹尼可(Jonathan Danylko)是一位自由职业的Web架构师和程序员,编程经验已超过20年,涉足领域有电子商务、生物技术、房地产、医疗、保险和公用事业。正如乔纳森在文中所言,本文适合刚毕业的大学生和刚入门的程序员。如果你已是高级开发人员,或许你在本文中看到自己的身影。 <br /> <br /> <br /> <br />从11岁时,我就一直在编程,并且一直都很喜欢技术和编程。这些年来,我积累了一些艰难又容易的经验。作为一名程序员,你或许还没这些经验,但我会

2010-11-15 11:02:00 377

原创 LDAP资料

<br />14.4  管理OpenLDAP<br />启动OpenLDAP服务器程序之后,接下来的操作就是通过客户端程序对目录进行操作,包括添加、修改、删除和搜索数据等操作。能对LDAP进行操作的客户端程序很多,本节简单介绍在Linux命令方式下进行这些操作的方法。14.4.1  向目录数据库中添加数据<br />初始状态下,LDAP是一个空目录,即没有任何数据。可通过程序代码向目录数据库中添加数据,也可使用OpenLDAP客户端工具ldapadd命令来完成添加数据的操作,该命令可将一个LDIF文件中的条

2010-10-25 11:49:00 2504 1

转载 LDAP介绍

<br /><br />LDAP是轻量目录访问协议,英文全称是Lightweight Directory Access Protocol,一般都简称为LDAP。它是基于X.500标准的,但是简单多了并且可以根据需要定制。与X.500不同,LDAP支持TCP/IP,这对访问Internet是必须的。LDAP的核心规范在RFC中都有定义,所有与LDAP相关的RFC都可以在LDAPman RFC网页中找到。<br />  简单说来,LDAP是一个得到关于人或者资源的集中、静态数据的快速方式。<br />LDAP是

2010-10-25 11:32:00 623

转载 LDAP基础

<br />一.LDAP的4中基本模型<br />       LDAP的体系结构由4中基本模型组成:信息模型描述LDAP的信息表达方式;命名模型描述LDAP的数据如何组织;功能模型描述LDAP的数据操作访问方式;安全模型描述LDAP的安全机制。<br /><br />       1.信息模型<br />       LDAP信息模型定义能够在目录中存储的数据类型和基本的信息单位。<br /><br />       2.命名模型<br />       LDAP中的命名模型,即LDAP中的条目定位方式。

2010-10-25 11:31:00 445

starting-struts2-chinese.pdf

starting-struts2-chinese.pdf学习struts的入门级宝典

2010-12-16

Expert One-on-One J2EE Design & Development.chm

Rod_Johnson 著作的Expert One-on-One J2EE Design & Development

2010-12-16

win7 CertEnroll demo

在win7中使用CertEnroll申请证书的demo

2010-04-28

Programming Server-Side Applications for Microsoft Windows 2000配套代码

Programming Server-Side Applications for Microsoft Windows 2000配套代码

2010-04-28

AspNetMvc1.0.Ms-PL.source.zip

微软MVC1.0框架安装包AspNetMvc1.0.Ms-PL.source代码

2010-04-18

BERcodec.zip

使用Visaul basic.net编写的基于ber编码规则的的asn.1的编码/解码库,可以适用于任何使用ber编码的协议比如(的LDAP,SNMP等)

2010-04-18

FCKeditor_2.6.6.zip

FCKeditor是一款功能强大的在线HTML编辑器,在博客日益兴盛的web2.0时代FCKeditor已经开始走向普通人的视线。

2010-04-18

acctest标识获取

通过AccID获取对应的acc名称信息,从而可以简单的通过AccID获取对应的信息,简化操作。

2010-04-18

微软C编程精粹.doc

Microsoft编写优质无错C程序秘诀

2010-04-18

Windows Driver Model(WDM)-中文.chm

Windows Driver Model(WDM)的根源可追溯到几年前一种叫做Windows for Workgroups 3.10的操作系统。那时候我们努力地支持无数不同的SCSI控制器,我长期地注意WindowsNT开发组创建的小端口驱动程序类型。不久就认识到重新构造必要的映象加载器(image loader)和小端口驱动程序需要的执行环境比把这些小端口驱动程序重写成某些VXD形式的驱动程序并调试完毕所花费的努力要少得多。 不幸的是,Windows from Workgroups 3.10已经停止发行带有SCSI小端口支持的版本,主要是由于象ASPI(高级SCSI编程接口)这样的外围问题。然而,跨Windows和windows NT操作系统共享同样的驱动程序执行映象的基础是适当的并且可以在win95中见到,它(win95)可以与NT共享SCSI和NDIS小端口驱动程序二进制代码。 共享驱动程序模式的潜在意义是重大的。驱动程序开发人员感兴趣的是支持双平台,共享驱动模式能降低开发和调试的一半开消。对微软来说,共享模式意味着更容易地从win9x迁移到Windows2000或这个平台的未来版本。对最终用户来说,大量不同种类的稳定驱动程序可以在这个家族中的所有成员之间通用。

2010-04-18

Undocumented Windows NT 中文版.chm

书中涉及处皆是系统核心奥妙之所在,常人皆对此望而却步。内存操作、各类钩挂、系统服务、软件中断等等系统黑客必掌握之绝技,此书皆有论述,且其内容之深入、之实际以往经典中也难得一见。然内容虽深数却不难懂,作者论述深入浅出,稍有难点便细致讲解,更有数处令吾甚感罗嗦,其讲解之到位,可见一斑。更可贵之处在于,此书不仅受人以鱼,更受人以渔。特辟一章专讲反向工程之技巧,其意在鼓励人从此可自立门户,自行探索系统之奥秘。师父领进门,修行在个人,此言不差。有宝典在手,日日勤读善思,不愁大功不成。

2010-04-18

OllyDB入门教程.chm

OllyDB入门教程 看雪出品的OLLYDB帮助手册

2009-02-23

Softice帮助手册

Softice帮助手册 但由于SoftICE的中文命令 解释很少能够见得完全,网友翻译手册

2009-02-23

NativeApi参考.chm

WINDOWS NATIVEAPI开发帮助手册

2009-02-23

PE结构(图形显示)

PE 的意思就是 Portable Executable(可移植的执行体)。它是 Win32环境自身所带的执行体文件格式。

2008-09-25

空空如也

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

TA关注的人

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