yzx99

导航

 

2008年7月16日

摘要: 今天想了解如何让类产生事件,从http://www.cnblogs.com/Jingu-st/archive/2006/03/23/356677.html中整理出如下的代码: using System; //事先申明一个委托,也可以在类的内部声明委托类型 public delegate void GameOver(); public class Game { // 声明一个事件并指定它... 阅读全文
posted @ 2008-07-16 22:26 yzx99 阅读(295) 评论(1) 推荐(0) 编辑
 
摘要: 对于扩展是开放的,对于更改是封闭的 无论模块是多么的“封闭”,都会存在些无法对之封闭的变化。我们是很难预先猜测,但我们却可以在发生小变化时,就及早去想办法应对发生更大变化的问题。也就是说,等到变化发生时立即采取行动。正所谓,同一地方,摔第一跤不是你的错,再次在此摔跤就是你的不对了。 在我们最初编写代码时,假设变化不会发生。当变化发生时,我们就创建抽象来隔离以后发生的同类变化。面对需求,对程序的改动... 阅读全文
posted @ 2008-07-16 04:33 yzx99 阅读(166) 评论(5) 推荐(0) 编辑
 
摘要: 就一个类而言,应该仅有一个引起它变化的原因[ASD]。 从俄罗斯方块说起,我们先写一个PC版的俄罗斯方块,把所有代码写在Form中,包括随机产生方块,定时方块下落一格,判断是否到底,到底后判断是否可消除一行。另一方面,接收游戏者的按键输入,决定方块左右移动、旋转、加速下落。这样设想应该是没有问题的,但再想到如果要把这个俄罗斯方块移到手机上,我们只有改变整个代码,拷贝、粘贴到新的程序中。“这当中,有... 阅读全文
posted @ 2008-07-16 04:13 yzx99 阅读(198) 评论(3) 推荐(0) 编辑
 
摘要: 我的第一次根本不需要半个小时,就写出了能适应各种打折的情况的代码。然而它是面向过程的。 然后强迫自己用面向对象的思想,写出了第二个代码,写的过程中,我真的天真地设想,正常收费的一个类,打折的一个类,突然想到书中的一句话:并不是类越多越好,才悬崖勒马,打折的只写一个类。不过,以我的观点,这种用类的代码比面向过程的差多了(初学者与高手的区别就在这里)。 加类后,代码运行结果不对了,我开始找如何在命令行... 阅读全文
posted @ 2008-07-16 03:21 yzx99 阅读(237) 评论(4) 推荐(0) 编辑