Fork me on GitHub

2013年7月18日

摘要: 设计模式——(Abstract Factory)抽象工厂设计面向对象软件比较困难,而设计可复用的面向对象软件就更加困难。你必须设计相关类,并设计类的接口和继承之间的关系。设计必须可以解决当前问题,同时必须对将来可能发生的问题和需求也有足够的针对性。掌握面向对象的设计模式,可以比较轻松的解决上述问题。 本篇文章主要讲解设计模式中最基本,也是最常用的(Abstract Factory)抽象工厂。 适用性: 在以下情况可以使用Abstract Factory模式 • 一个系统要独立于它的产品的创建、组合和表示时。 • 一个系统要由多个产品系列中的一个来配置时。 • 当你要强调一系列相关的... 阅读全文
posted @ 2013-07-18 11:45 HackerVirus 阅读(178) 评论(0) 推荐(0)
摘要: 从优化到再优化,最长公共子串最长公共子串(Longest Common Substring)是一个非常经典的面试题目,在实际的程序中也有很高的实用价值,所以把该问题的解法总结在本文重。不过不单单只是写出该问题的基本解决代码而已,关键还是享受把学习算法一步步的优化,让时间和空间复杂度一步步的减少的惊喜。概览最长公共子串问题的基本表述为:给定两个字符串,求出它们之间最长的相同子字符串的长度。最直接的解法自然是找出两个字符串的所有子字符串进行比较看他们是否相同,然后取得相同最长的那个。对于一个长度为n的字符串,它有n(n+1)/2个非空子串。所以假如两个字符串的长度同为n,通过比较各个子串其算法复杂 阅读全文
posted @ 2013-07-18 11:44 HackerVirus 阅读(243) 评论(0) 推荐(0)
摘要: 与数据库打交道的Adapter----SimpleCursorAdapter程序员是这个世界上最神奇的职业,因为几乎所有其他职业的人都能转到该行来,只要他智力正常,有接受过正规的编程训练,尤其是现在培训班实在是太多了,加上他肯去学,三个月后他就能说自己是C或者java程序员了,但一个事实是摆明的:世界上几乎80%的优秀软件是由程序员中10%的精英编写或者基于他们的成果上编写的,这是不争的事实:程序员这个门槛实在是太低了,但是发展瓶颈却很高。我们都不是那10%的精英程序员,甚至连他们的1%的才能都比不上,相信大家都一定看过不少这些精英们的著作,我们会发现,他们要么是数学家,要么坚称自己是个艺术家 阅读全文
posted @ 2013-07-18 11:43 HackerVirus 阅读(197) 评论(0) 推荐(0)
摘要: JavaScript中变量声明有var和没var的区别JavaScript中有var和没var的区别Js中的变量声明的作用域是以函数为单位,所以我们经常见到避免全局变量污染的方法是(function(){ // ...})();在函数内部,有var和没var声明的变量是不一样的。有var声明的是局部变量,没var的,声明的全局变量,所以可以借此向外暴露接口东东。在全局作用域内声明变量时,有var 和没var看起来都一样,我们知道,声明的全局变量,就是window的属性,究竟是否一样,我们通过ECMAScrpit5提供的属性的特性查询方法,来发现之间的区别。var fff = 2;window. 阅读全文
posted @ 2013-07-18 11:42 HackerVirus 阅读(220) 评论(0) 推荐(0)
摘要: 在Linux(Ubuntu/openSUSE/CentOS)下配置ASP.NET(Apache + Mono)【题外话】闲的无聊竟然想尝试测试自己做的项目在不同操作系统上的性能表现,所以决定试试在Linux上部署Apache和Mono的环境。由于平时很少接触Linux,所以从网上找了几篇文章(附在相关链接中)尝试,部署的过程也并非一帆风顺,所以就根据自己在Azure上配置的情况重新进行了整理,希望对很少接触Linux的同学有所帮助。以下所有操作均在Azure上的虚拟机里配置,如果在本地或者虚拟机里配置,可能首先还需要配置网卡设置等。【文章索引】在Ubuntu下安装Apache在Ubuntu下安 阅读全文
posted @ 2013-07-18 11:40 HackerVirus 阅读(200) 评论(0) 推荐(0)
摘要: 31天重构学习笔记重新整理下载31天重构学习笔记重新整理下载2013-07-18 02:38 by 圣殿骑士,1000阅读,20评论,收藏,编辑前言 前两天写了一篇程序猿也爱学英语(上),有图有真相的文章,写作那篇文章只是自己一时兴起,或者说是自己的兴趣使然。文中的观点只是自己的学习心得和体会,属一家之言且鉴于本人不是学英语出身,所以也肯定有不正确的地方,也欢迎大家积极讨论并给我留言,再次感谢大家的热烈支持。关于大家询问下篇的发布问题,我想我会尽力在周末完成。 这几天由于刚发布完项目,所以有比较充裕的时间整理自己的知识库,发现三年多以前学习并记录了31天重构系列笔记,至今仍回味无穷,索性重新阅 阅读全文
posted @ 2013-07-18 11:33 HackerVirus 阅读(279) 评论(0) 推荐(1)
摘要: 【算法】简单动态规划——三逆数的O(N^2)解法!问题描述:三逆数定义:给一个数的序列A[0,1,....N-1]),当iA[j]>A[k]时,称作ai,aj,ak为一个三逆数。现在给定一个长度为N的数组,求此数组序列中存在三逆数的总个数。本人暂时只想到O(N^2)时间复杂度的解法。不知道还没有没更好更快的解法。(谁有更好的解法,欢迎分享~)O(N^3)解法:这个最直观了,直接三层循环进行统计,即可求和三逆数总和。代码太简单了,就略过了~O(N^2)解法:1.进行预处理,先用R[1..N]数组记录,R[i]表示在第i个元素后面比第i个元素小的个数之和,此步为基本的动态规划,时间复杂度为O 阅读全文
posted @ 2013-07-18 11:31 HackerVirus 阅读(276) 评论(0) 推荐(0)
摘要: 锁写在前面在进入锁的学习前来看看Thread的方法,之前一直对这个方法不了解,今天学习了下。在学习之前看两段代码吧: 1 static void Main(string[] args) 2 { 3 Thread thread = new Thread(new ThreadStart(myThread1)); 4 thread.Start(); 5 thread.Join(); //关键这一行 6 Console.WriteLine("主线程"); 7 Console.Rea... 阅读全文
posted @ 2013-07-18 11:17 HackerVirus 阅读(234) 评论(0) 推荐(0)
摘要: 抽象类总结及练习该篇文章只是说明抽象类的一个使用场景,由于小弟水平一般,如果有说的不对地方希望各位大牛们指出,也欢迎各位亲们补充。什么是抽象类用关键字abstract定义的类即为抽象类,且只能作为基类。抽象类注意的地方1、 用abstract定义的类不一定包含抽象方法,也可以包含非抽象方法。2、abstract定义的方法一定包含在抽象类中。3、抽象类不能被实例,只能被继承并且派生类需要重写(overriding)抽象类中的抽象方法。4、抽象类不能定义为密封类(sealed)5、 如果派生类没有实现所有的抽象方法,则该派生类也必须声明为抽象类。实例下面我通过一个简单的例子说明一下抽象类的使用场景 阅读全文
posted @ 2013-07-18 10:38 HackerVirus 阅读(257) 评论(0) 推荐(0)

2013年7月17日

摘要: 简单好用的Adapter---ArrayAdapter拖延症最可怕的地方就是:就算自己这边没有拖延,但对方也会拖延,进而导致自己这边也开始拖延起来!现在这个项目我这边已经是完工了,但是对方迟迟没有搞定,导致整个项目无法提交。 这就是拖延症的可怕:我们不仅是与自己的拖延症作战,而是与所有有关人士的拖延症作战,决定项目是否能够提交,在于那个最慢的人。 既然决定权已经不在我的手上,那么我也可以做做其他事情,像是现在这样写写博客。这次就介绍一下ListView中比较简单但又非常方便的ArrayAdapter。 ArrayAdapter是BaseAdapter的派生类,在BaseAdapter的基础上, 阅读全文
posted @ 2013-07-17 21:22 HackerVirus 阅读(292) 评论(0) 推荐(0)