摘要:
关于面向对象的的设计原则的使用关于面向对象的原则,相信大家都很清楚.但真正使用时,我想我们都会违反一些原则,因为要遵守这些原则,我们必须要多写好多代码.最后得不尝试. 下面我就关于这些原则发表一下个人的看法:一、单一职责原则 就一个类而言,应该仅有一个引起它变化的原因。软件设计真正要做的许多内容,就是发现职责并把那些职责相互分离。测试驱动的开发实践常常会在设计出现臭味之前就迫使我们分离职责。这个很重要 ,我在程序开发中都会遵守这个原则.二、“开一闭”原则讲的是:一个软件实体应当对扩展开放,对修改关闭。 这个规则说的是,在设计一个模块的时候,应当使这个模块可以在不被修改的前提下被扩展。 从另外.
阅读全文
posted @ 2013-05-04 11:57
HackerVirus
阅读(169)
推荐(0)
摘要:
可扩展的 “密码强度” 代码示例场景在企业应用中,我们经常需要限制用户的密码强度。问题如何以可扩展的方式支持不同企业应用的密码强度要求?思路算法思路:密码强度 = 求和(每个规则的强度 * 权重)。可扩展思路:以聚合的形式管理各种规则,让用户可以扩展自定义规则。实现设计类图示例代码PasswordStrengthService 1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 using System.Threading.Tasks; 6 7 name.
阅读全文
posted @ 2013-05-04 11:56
HackerVirus
阅读(253)
推荐(0)
摘要:
阮一峰:字符串匹配的Boyer-Moore算法投递人itwriter发布于 2013-05-03 16:04评论(10)有818人阅读原文链接[收藏]«» 上一篇文章,我介绍了KMP 算法。 但是,它并不是效率最高的算法,实际采用并不多。各种文本编辑器的"查找"功能(Ctrl+F),大多采用Boyer-Moore 算法。 Boyer-Moore 算法不仅效率高,而且构思巧妙,容易理解。1977 年,德克萨斯大学的 Robert S. Boyer 教授和 J Strother Moore 教授发明了这种算法。 下面,我根据 Moore 教授自己的例子来解释
阅读全文
posted @ 2013-05-04 10:32
HackerVirus
阅读(259)
推荐(0)
摘要:
UDP通信最近做了一个网页的UDP通信的小东西,由于怕以后用到的时候找不到了,贴出来跟大家分享,代码也有好多是从网上找的 1 //这里之所以用try catch是因为在接收的时候如果关闭窗口的话,会有一个进程挂起,导致再次运行的时候出错,这样写我也不知道有什么缺陷,希望懂的的人告诉一下 2 try 3 { 4 //建立一个新的UdpClient 6716是固定端口 不写则是随机端口 5 udpClient = new UdpClient(6716); 6 //连接远程服务器 7 ...
阅读全文
posted @ 2013-05-03 20:29
HackerVirus
阅读(318)
推荐(0)
摘要:
数据库事务(Databse Transaction)什么是事务是指作为单个逻辑工作单元执行的一系列操作。事务处理可以确保除非事务性单元内的所有操作都成功完成,否则不会永久更新面向数据的资源。通过将一组相关操作组合为一个要么全部成功要么全部失败的单元,可以简化错误恢复并使应用程序更加可靠。一个逻辑工作单元要成为事务,必须满足所谓的ACID(原子性、一致性、隔离性和持久性)属性。数据库事务的基本概念“一荣俱荣,一损俱损”这句话很能体验事物的思想,很多复杂的事物要分步进行,但他们组成一个整体,要么整体生效,要么整体失效,这种思想反映到数据库上,就是多个SQL语句。要么全部执行成功,要么全部执行失败。
阅读全文
posted @ 2013-05-03 20:28
HackerVirus
阅读(225)
推荐(0)
摘要:
在C#程序中使用ocx的方法 在做一个WPF的项目时(VS2008,C#),需要引用一个使用c++编译的ocx组件,但是运行的时候经常报错,无法使用其中提供的接口和方法。上网查了一下解决办法,方法很多,但是很多都没有奏效。最终找到了一个比较有效的方法,下面就是在我的程序中能够成功使用的例子,分享一下。(虽然已经是去年的了—_—|||)1、在c#工程文件中,使用c++等其他语言编译的ocx组件时,若为WinForm工程则不会报错,若使用WPF等其他类型的工程,在调用组件内的方法时,会报错:灾难性故障未处理 System.Runtime.InteropServices.COMException M
阅读全文
posted @ 2013-05-03 20:27
HackerVirus
阅读(510)
推荐(0)
摘要:
迷你MVVM框架 avalonjs v5.1发布,性能大幅提高早在avalon在IE与firefox有较为严重的性能问题,chrome等则由于它们太逆天因此看不出。主要原因是动态插入节点时,each由于一些帮方法考虑不周,结果不得不逐个插入,虽然使用了nextTick进行缓冲,但延迟明显。然后avalonjs v5把大体的架构完成了,然后重点改良这些方法了。在v5.1中所有延迟都没有了,即便在IE6下也很接近之前在chrome的运行效果。算是一次非常出色的改进。1, addItemView方法不再逐个复制,逐个插入了。//原来functionaddItemView(index, item, d
阅读全文
posted @ 2013-05-03 20:25
HackerVirus
阅读(205)
推荐(0)
摘要:
leetcode刷题笔录-6验证二叉查找树给出一棵树,验证其是否是一棵二叉查找树。二叉查找树应当满足,对于每个节点:左子树中的所有节点的值小于该节点的值;右子树中的所有节点的值大于该节点的值;左子树和右子树都必须是二叉查找树。思路:递归检查每个节点的值是不是在某个区间 [min, max] 中,对根节点,检查其是不是在区间 [INT_MIN, INT_MAX] 中。对某个节点的检查区间,如此确定:如果该节点是父节点的左子结点,则 min 继承父节点检查区间的 min ,而 max 则为父节点的值;右子树类似。实现:/** * Definition for binary tree * struc
阅读全文
posted @ 2013-05-03 20:24
HackerVirus
阅读(243)
推荐(0)
摘要:
Wix打包系列https://wix.codeplex.com/Wix打包系列(七) 添加系统必备组件的安装程序 我们知道在vs的打包工程中添加系统必备组件是一件很容易的事情,那么在wix中如何检测系统必备组件并在安装过程中安装这些组件。这里以.Net Framework组件作为必备组件为例: 7.1 检测.Net Framework 版本 步骤1:为安装项目添加WiX .NET extensions库的引用 如果是命令行方式使用wix,那么需要在candle和light的时候添加如下参数: -ext WiXNetFxExtension 如果在vs中使用wix...2010-11-02 ...
阅读全文
posted @ 2013-05-03 16:07
HackerVirus
阅读(433)
推荐(0)
摘要:
Enable NuGet package restore in Visual Studio and TFS 2012 RC to building Windows 8 Metro Appshttp://blogs.4ward.it/enable-nuget-package-restore-in-visual-studio-and-tfs-2012-rc-to-building-windows-8-metro-apps/In theprevious post(only in Italian for now, sorry) we created a new build machine with W
阅读全文
posted @ 2013-05-03 15:37
HackerVirus
阅读(1230)
推荐(0)