- 军军小站|张军博客
搜索到与相关的文章
编程技术

ESBasic 可复用的.NET类库(03) -- 圈 Circl

1.缘起:假设我们要开发一个多人跳棋游戏。在跳棋游戏中,当一个人走一步棋之后,控制权就轮到下一家,如此轮询,一圈之后控制权又回到自己,然后再继续轮圈下去。我们可以使用数组或列表等数据结构来解决这种转圈圈的问题,但是始终都不够直观。我设计了Circle来对“圈”这种数据结构进行抽象,我们在类似跳棋这样的游戏中可以非常方便地直接使用它。Circle的形象示意图如下:2.适用场合:需要类似“圈”这样的数据结构支持的场合。3.设计思想与实现Circle也是一个非常

系统 2019-08-29 22:15:04 1802

编程技术

ESBasic 可复用的.NET类库(14) -- 优先级管

1.缘起:假设我们的订单处理系统所要处理的订单是有优先级的,也就是说,不同的订单类型所要求被处理的紧迫程度不同,对那些优先级高的注单要先处理,对于优先级低的注单可稍后处理。对于处于同一优先级的订单了,就按照其到达的先后顺序进行处理。这是一个典型的管理具有优先级的对象的需求,注单就是具有优先级(WithPriority)的对象。我设计了ESBasic.ObjectManagement.Managers.IPriorityManager优先级管理器(确切地说,

系统 2019-08-29 22:05:26 1802

编程技术

面试题 (斐波那契数列,复杂度为线性)

来自网易的一道看似简单的笔试题题目:要求以线性时间复杂度实现斐波那契数列。1,1,2,3,5,8,13,21,34,55,89,。。。。。。众所周知的斐波那契实现方式为递归实现:intfeb1(intn){t1++;if(n==0||n==1)return1;returnfeb1(n-1)+feb1(n-2);}当n=25时,迭代次数为242785。关于其复杂度的解释比较麻烦,详见http://www.cnblogs.com/python27/archiv

系统 2019-08-29 22:03:24 1802

编程技术

给明年依然年轻的我们

今天是22岁的最后一天。几个月前,我从沃顿商学院毕业,用文凭上“最高荣誉毕业”的标签安抚了已经年过半百的老妈,然后转头辞去了毕业后的第一份工作,跟一家很受尊敬的公司、还有150万的年薪道了别,回到了上海,加入了“刚毕业就失业”俱乐部,开始了一天三顿盒饭的新生活,中间许多精彩剧情暂时略过。我肯定不是第一个做过这样事的人,也肯定不会是最后一个。所以在说自己的一些有趣故事前,我想借用大家(包括30岁甚至40岁以上的朋友)的一点时间和一点平和的心态,和大家分享过去

系统 2019-08-29 22:01:03 1802

编程技术

大话重构连载17:抽取方法的实践

说了那么多理论,我们来看看怎样使用抽取方法来重构遗留系统。如前所述,重构的过程首先是阅读程序代码,边阅读边整理程序。将功能相对独立的代码段放在一起,在前面加上注释。调整一些程序的顺序,将相关的代码尽量放在一起,但要保证程序执行的结果不会发生改变。比较典型的,将变量的定义与使用变量的代码放在一起。这个步骤比较实用,因为许多的遗留系统,其代码都有一个坏毛病,就是在程序开始时定义一大堆变量,但要弄清这些变量都用来做什么,却十分困难。边读边调整,将变量的定义逐渐迁

系统 2019-08-29 21:59:02 1802

编程技术

如何在spring框架中解决多数据源的问题

在我们的项目中遇到这样一个问题:我们的项目需要连接多个数据库,而且不同的客户在每次访问中根据需要会去访问不同的数据库。我们以往在spring和hibernate框架中总是配置一个数据源,因而sessionFactory的dataSource属性总是指向这个数据源并且恒定不变,所有DAO在使用sessionFactory的时候都是通过这个数据源访问数据库。但是现在,由于项目的需要,我们的DAO在访问sessionFactory的时候都不得不在多个数据源中不断

系统 2019-08-29 21:58:55 1802

Python

python初学笔记

通过上班闲暇时间开始学习一门脚本语言--python,很早前就有老同学建议学习一门脚本语言对未开开发会很有帮助,最初考虑选择哪门语言的时候在python和ruby中纠结了一下,最后选择python主要是感觉它的使用用户更广。开发环境我是在windows平台下开发的,python版本官方推荐的是2.7和3.3,我选择了后者,附上下载地址。事实上,对于新手来说,2.x和3.x确实有一些改变,如果你用2.x的帮助文档在3.x下开发可能会遇到一些麻烦(比如prin

系统 2019-08-12 09:30:29 1802

编程技术

23种设计模式(3):抽象工厂模式

文章来源:http://blog.csdn.net/zhengzhb/article/details/7359385定义:为创建一组相关或相互依赖的对象提供一个接口,而且无需指定他们的具体类。类型:创建类模式类图:抽象工厂模式与工厂方法模式的区别抽象工厂模式是工厂方法模式的升级版本,他用来创建一组相关或者相互依赖的对象。他与工厂方法模式的区别就在于,工厂方法模式针对的是一个产品等级结构;而抽象工厂模式则是针对的多个产品等级结构。在编程中,通常一个产品结构,

系统 2019-08-12 09:30:25 1802

Python

python如何将多个PDF进行合并

背景由于工作性质,经常面对不同的问题,某些场景下SQL+Excel、常用办公软件不能处理,这时到网上找一些案例,自己动手用python处理。后续,借此博客记录比较典型的处理过程。后续,陆续实际处理的问题,如1.合并PDF2.拆分PDF3.敏感字段MD5脱敏4.从非架构化的大文本文件中提取指定条件的记录需求工作和生活中有时会遇到将多个pdf文件,合并成一个大文件的情况。例如,扫描时,普通扫描仪或打印机一页生成一个PDF,而一份资料实际多页。Adobe的收费版

系统 2019-09-27 17:57:30 1801