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

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

编程技术

用例图是软件项目成本预估的好帮手

成本预估对于所有的项目来说都是至关重要的。没有成本预估,就不可能在项目前期控制成本与管控风险。为了让项目经理能够尽早组建团队、申请项目资金,并评估可能的风险,一个方式便是参考以往项目经验来估算项目成本。成本最重要的“开发成本(时间)”部分就是由程序员参考生产力来评估所有系统功能完成的。尽管具体功能花费的时间是由程序员来估算,但是比”具体功能”影响更大的,比如,项目有多少功能?范围如何?则是由项目经理向客户确认的,而确认的结果就是用例文档和用例图。相比用例,

系统 2019-08-29 22:04:24 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

编程技术

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

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

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

编程技术

Subduing CLASSPATH

原文地址:http://www.artima.com/weblogs/viewpost.jsp?thread=172953第一,将文件放到jre\lib\ext

系统 2019-08-29 21:57:48 1802

编程技术

document.createElement()

今天处理了一个日期选择器的ie和ff的兼容问题,本来这种情况就很难找错误,找了好久才把错误定位到js中创建元素的方法document.createElement(),这个方法在ie下支持这样创建元素varinputObj=document.createElement("");但是这样的情况在

系统 2019-08-12 09:30:37 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

编程技术

状态(State)模式

在软件构建过程中,某些对象的状态如果改变,其行为也会随之而发生变化。如何在运行时根据对象的状态来透明地更改对象的行为?而不会为对象操作和状态转化之间引入紧耦合?允许一个对象在其内部状态改变时改变它的行为。从而使对象看起来似乎修改了其行为。一,结构:二,示例代码:publicinterfaceState{publicvoidhandle(Contextcontext);}classConcreteStateAimplementsState{publicvoi

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

Python

python如何将多个PDF进行合并

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

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