Google [站内搜索]

预览模式: 普通 | 列表

编码的邪恶: 复制与粘帖

在侃侃而谈OO,侃侃而谈设计模式,侃侃而谈面向对象的诸多原则之前,我们首先应该掌握一点:封装。掌握好封装的原则和技巧之后,就算使用的不是OO语言,也能构造出框架优美的程序。将这些原则用在程序之外,也能得到出奇的效果。《设计规则-模块化的力量》(http://www.douban.com/subject/1737636/)将封装与模块化放在神坛的高位,它们配得上这个位置。这是我们解决复杂性问题的最基本的方法(没有之一)。

程序是一种复杂性系统。“道生一,一生二,二生三,三生(四,四生…)万物”。若将复杂性的根源当作“道”的化,那么这个“一”必然是封装。不同的程序语言以及由这些程序语言衍生的方法,则处于“二”的地位,比如 OO 设计范式、FP(函数编程)范式、分层的原则等等。OO设计准则,什么里氏替换原则,什么组合优先于继承,这些处于“三”的地位,具体的设计模式什么之类的处于“三”之后“四”的地位。

本人愚笨,至今尚记不清那些原则,如里氏替换原则是什么,那些这个模式那个模式怎么实现。设计模式中,俺只对策略模式感兴趣,对其它模式兴趣索然。实质上这些模式也好、准则也好,只是给我们提供了一种方法、一种工具去更好的实现封装。

查看更多...

分类:其他 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 3202
Create PROCEDURE Test
AS
    DECLARE @strSQL nvarchar(500)
    
    SET @strSQL = 'select mobileno,regtime into #tmpTable from textmessage'

查看更多...

分类:Web编程 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 7625

图片不存在对页面加载速度的影响

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>测试加载</title>

查看更多...

分类:其他 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 3798

委托进阶:匿名方法的使用

我们现在来做一个小程序:创建一个Windows窗体应用程序,然后在默认创建的Form1上添加两个按钮,分别命名为btnClickMe1和btnClickMe2,显示的文本为“点击我1”、“点击我2”,如下图所示:



然后我们希望在点击这两个按钮的时候,能够弹出一个对话框,向用户显示一个提示,例如“您好,我的读者,希望您能喜欢本书!”(顺便一提,我是真心这么希望的^^)。如果在往常,你可能会毫不犹豫的在按钮上双击,然后编写按钮的事件处理代码,但是我们现在在讲委托和事件,所以让我们换一种方式,像下面这样修改Form1.cs文件:

查看更多...

分类:Web编程 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 3674

C# 中的委托和事件

引言

委托 和 事件在 .Net Framework中的应用非常广泛,然而,较好地理解委托和事件对很多接触C#时间不长的人来说并不容易。它们就像是一道槛儿,过了这个槛的人,觉得真是太容易了,而没有过去的人每次见到委托和事件就觉得心里别(biè)得慌,混身不自在。本文中,我将通过两个范例由浅入深地讲述什么是委托、为什么要使用委托、事件的由来、.Net Framework中的委托和事件、委托和事件对Observer设计模式的意义,对它们的中间代码也做了讨论。

将方法作为方法的参数

查看更多...

分类:Web编程 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 3207

SIM卡背面的20位数字所代表的含义

中国移动

例如:8986 00 79 09 04 4 9311287

8986代表国家中国

查看更多...

分类:其他 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 6256

怎么从进程判断病毒和木马

任何病毒和木马存在于系统中,都无法彻底和进程脱离关系,即使采用了隐藏技术,也还是能够从进程中找到蛛丝马迹,因此,查看系统中活动的进程成为我们检测病毒木马最直接的方法。但是系统中同时运行的进程那么多,哪些是正常的系统进程,哪些是木马的进程,而经常被病毒木马假冒的系统进程在系统中又扮演着什么角色呢?请看本文。

病毒进程隐藏三法

当我们确认系统中存在病毒,但是通过"任务管理器"查看系统中的进程时又找不出异样的进程,这说明病毒采用了一些隐藏措施,总结出来有三法:

查看更多...

分类:操作系统 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 3771

写出漂亮代码的七种方法

首先我想说明我本文阐述的是纯粹从美学的角度来写出代码,而非技术、逻辑等。以下为写出漂亮代码的七种方法:

1、尽快结束 if语句

例如下面这个JavaScript语句,看起来就很恐怖:

查看更多...

分类:其他 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 3529

常见网络广告定价模式

CPA(Cost-per-Action):每次行动的费用,即根据每个访问者对网络广告所采取的行动收费的定价模式。对于用户行动有特别的定义,包括形成一次交易、获得一个注册用户、或者对网络广告的一次点击等。
CPC(Cost-per-click):每次点击的费用。根据广告被点击的次数收费。如关键词广告一般采用这种定价模式。
CPS(Cot Per Sales):以实际销售产品数量来换算广告刊登金额。
CPM(Cost per Thousand Impressions):每千次印象费用。广告条每显示1000次(印象)的费用。CPM是最常用的网络广告定价模式之一。
CPO(Cost-per-Order):也称为Cost-per-Transaction,即根据每个订单/每次交易来收费的方式。

查看更多...

分类:其他 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 4796

比较直接量和构造函数创建的Js对象

在Js中,创建对象的方法可有两种:直接量和构造函数,如下例子:

//直接量
var O = {aa:1,bb:2};
//构造函数

查看更多...

分类:脚本语言 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 8756