2009年8月12日

炸弹和土匪引用(转)

摘要: 我来设计一个例子,我在D目录运行程序A(土匪)。然后望D目录丢文件(炸弹)过去,土匪判断该文件是否炸弹(包含实现了接口IBomb的类),如果是,则执行IBomb的Explode方法让炸弹爆炸,当然炸了以后就没有了,文件将被删除。 接口定义--编译为Interface.dll供炸弹和土匪引用。C# code using System;namespace Interface{ public interface IBomb { void Explode(); }}炸弹定义--编译为ClassLibrary1.dll,准备交给土匪 C# code using Sy... 阅读全文

posted @ 2009-08-12 13:10 恒波 阅读(170) 评论(0) 推荐(0)

2009年6月29日

最犇的.Net下的委托入门讲解

摘要: 有许多人问的,.Net中的委托以及事件处理。我拿简单的例子说明一下,是现实中的例子: 比如说一个公司(场景),你是老板,手下有两个员工,小张和小王。 你命令小王,如果小张玩游戏,则小王扣去小张500元钱。 这就是现实中的委托。 实际上,在写程序中,程序员就是老板,小张和小王就是两个对象。小张玩游戏是一个方法,小张还有一个游戏事件,他玩游戏激发这个事件。而小王就是事件处理对象,他负责把小张的钱扣除500。 所以,委托有如下几个要素: 1 激发事件的对象--就是小张 2 处理对象事件的对象--就是小王 3 定义委托,就是你让小王监视小张。 如果这三个要素都满足的话,则你就写出了一个完整事件的处理。 阅读全文

posted @ 2009-06-29 11:11 恒波 阅读(163) 评论(0) 推荐(0)

理解委托好比“任务书”

摘要: 委托和事件在 .NET Framework中的应用非常广泛,然而,较好地理解委托和事件对很多刚接触C#的人来说并不容易。它们就像一道坎儿,过了这个槛的人,觉得真是太容易了,而没有过去的人每次见到委托和事件就觉得心里迷糊,浑身不自在。下面就通过简洁的语言和通俗的例子来讲解一下什么是委托、如何实现委托,如何使用委托,以及事件的使用与处理。1.示例代码 (示例位置:光盘/code/ch01/11) public class ClassPeople{ public void SayChinese(string name) { Console.WriteLine("你好," + na 阅读全文

posted @ 2009-06-29 10:56 恒波 阅读(129) 评论(0) 推荐(0)

2009年6月25日

.NET开发人员必知的八个网站

摘要: -->当前全球有数百万的开发人员在使用微软的.NET技术。如果你是其中之一,或者想要成为其中之一的话,我下面将要列出的每一个站点都应该是你的最爱,都应该收藏到书签中去。对于不熟悉.NET技术的朋友,需要说明一下,.NET提供了一个平台和一些相应的工具,编程人员可以使用它们来在开发Windows桌面,互联网,甚至是手持移动设备上构建极富交互性的应用。很有可能你最喜欢的网站之一就是用微软的ASP.NET技术构建的。1.CodeProject这些年来我在这个站点下载了数不清的代码。该站点中的快速有效的文章都是由真正的开发人员撰写的,他们可以给你关于特定编程问题的直接帮助,而文章中总是会包含一个 阅读全文

posted @ 2009-06-25 10:02 恒波 阅读(144) 评论(0) 推荐(0)

2009年5月19日

CLR 完全介绍-反射之反思

摘要: 清晰的组件化目标是否因在库间共享过多类型信息而落空?或许您需要高效的强类型化数据存储,但如果每次对象模型发展后都需要更新您的数据库架构,那会耗费很大成本,所以您更愿意在运行时推断出其类型架构吗?您需要交付能接受任意用户对象的组件,并以某种智能化的方式处理它们吗?您希望库的调方者能以编程方式向您说明它们的类型吗? 如果您发现自己在苦苦维持强类型化数据结构的同时,又冀望于最大化运行时灵活性,那么您大概会愿意考虑反射,以及它如何改善您的软件。在本专栏中,我将探讨 Microsoft® .NET Framework 中的 System.Reflection 命名空间,以及它如何为您的开发体验 阅读全文

posted @ 2009-05-19 10:36 恒波 阅读(193) 评论(0) 推荐(0)

2009年5月14日

观察者模式

摘要: 1什么是观察者模式 我们在日常生活中有很多观察者模式应用的场景。比如,凡是去过银行营业大厅办理业务的人,大多会有这么一段经历:办理业务之前,先要在营业大厅的门口领取一个排队号,然后你就可以在休息区等待叫号,当轮到自己办理业务的时候,某个柜台上方悬挂的小显示屏就会出现“请XXX号到XX柜台办理业务”。有的时候,某个柜台可能暂时停止办理业务,那么柜台上方的小屏就显示跟其它柜台上方的小屏同样的内容,以便提醒当前用户办理。对于这样的一个需求,你会怎么去实现它呢?我经过一番思考之后,写出了这么一段代码:Java代码://银行柜台类import java.util.Vector;public class 阅读全文

posted @ 2009-05-14 11:19 恒波 阅读(271) 评论(0) 推荐(0)

发展之道:简单与专注

摘要: 为什么要讲这样一个话题,主要源于最近碰到的几件事情。一个朋友想要做网站,给我讲了讲他的初步方案,毫无疑问,这是一个非常宏伟的综合性的网站,但我只听了一部分就让他打住了。我问他:你的网站到底跟别人有什么不同?他说:我的网站很专业很全面。我说:这没有意义,如果你还没有找到跟别人不同的话,建议你不要浪费那个精力和投入了。 如果个人或者小公司去做综合类网站,这是很不靠谱的事。现如今小网站的存活之道一定是垂直的,而且必须要有一个非常显著的亮点,只有把这个亮点深挖进去,吃透了,而且还能将它做到极致才行。从一开始就想搞一个大而全的网站,设置那么多的频道,这不仅对于拉动流量没有效果,而且还会把你的亮点给淹没. 阅读全文

posted @ 2009-05-14 11:00 恒波 阅读(179) 评论(0) 推荐(0)

单例模式

摘要: 1 单例模式的日常应用我们在浏览BBS、SNS网站的时候,常常会看到“当前在线人数”这样的一项内容。对于这样的一项功能,我们通常的做法是把当前的在线人数存放到一个内存、文件或者数据库中,每次用户登录的时候,就会马上从内存、文件或者数据库中取出,在其基础上加1后,作为当前的在线人数进行显示,然后再把它保存回内存、文件或者数据库里,这样后续登录的用户看到的就是更新后的当前在线人数;同样的道理,当用户退出后,当前在线人数进行减1的工作。所以,对于这样的一个需求,我们按照面向对象的设计思想,可以把它抽象为“在线计数器”这样一个对象,具体实现如下:Java代码://在线人数计数器class Online 阅读全文

posted @ 2009-05-14 10:58 恒波 阅读(253) 评论(0) 推荐(0)

享元模式

摘要: 1 享元模式的日常应用面向对象的思想确实很好地解决了抽象性的问题,以至于在面向对象的眼中,万事万物一切皆对象。不可避免的是,采用面向对象的编程方式,可能会增加一些资源和性能上的开销。不过,在大多数情况下,这种影响还不是太大,所以,它带来的空间和性能上的损耗相对于它的优点而言,基本上不用考虑。但是,在某些特殊情况下,大量细粒度对象的创建、销毁以及存储所造成的资源和性能上的损耗,可能会在系统运行时形成瓶颈。那么我们该如何去避免产生大量的细粒度对象,同时又不影响系统使用面向对象的方式进行操作呢?享元设计模式提供了一个比较好的解决方案。公共交换电话网的使用方式就是生活中常见的享元模式的例子。公共交换电 阅读全文

posted @ 2009-05-14 10:20 恒波 阅读(173) 评论(0) 推荐(0)

2009年5月11日

一位软件工程师的6年总结(转)

摘要: “又是一年毕业时 ”,看到一批批学子离开人生的象牙塔,走上各自的工作岗位;想想自己也曾经意气风发、踌躇满志,不觉感叹万千…… 本文是自己工作6年的经历沉淀或者经验提炼,希望对所有的软件工程师们有所帮助,早日实现自己的人生目标。本文主要是关于软件开发人员如何提高自己的软件专业技术方面的具体建议,前面几点旨在确定大的方向,算是废话吧。一、分享第一条经验:“学历代表过去、能力代表现在、学习力代表未来。” 其实这是一个来自国外教育领域的一个研究结果。相信工作过几年、十几年的朋友对这个道理有些体会吧。 但我相信这一点也很重要:“重要的道理明白太晚将抱憾终生!”所以放在每一条,让刚刚毕业的朋友们早点看到. 阅读全文

posted @ 2009-05-11 19:35 恒波 阅读(141) 评论(0) 推荐(0)

导航