[转]小黑之天地培训学习手记——第三、四周
http://bbs.9ria.com/viewthread.php?tid=79563&extra=page%3D1%26amp%3Borderby%3Ddateline%26amp%3Bfilter%3D2592000
最近忙得很……在干一些不为人知的事。。=。 =。菜头帮的兄弟都叫我快点更新贴子,并喷得我体无完肤……其实我也想发,现在好了,终于可以写到了。
这次要写2周的东西。嘛,中途放了清明节,所以课程也不会很多。而且主要讲的是OOP思想神马的,所以不会很多实际上的知识。(想问各位愚人节过得怎么样。)
上周再上周4是由黑羽大叔……大哥亲自上阵……教我们殿堂之路之失落的60页。
黑羽讲的课基本是没有写什么代码的,都是OOP思想的一些法则,为了使我们这些新手少走弯路。这是内功啊~
编程有4条法则,新手们最好按照这个来做。
1、 宁用复合不用继承。
2、 200行代码需警惕,500行有问题
3、 继承不过5层
我擦,忘记了1条……对此我表示淡定。
对应的法则我来解说一下:
1、 新手用继承可能会产生混乱,例如一台电脑,它需要刻录东西的时候,就需要刻录功能了,于是继承了刻录机,就有了刻录功能。但换一种方式思考,我电脑继承刻录机……电脑是刻录机的儿子……好吧,这感觉不太爽,电脑会抗议的。这是新手容易犯的错误。虽然这样做可以达到目的,但这样就太委屈电脑了吧。
再看复合,我电脑缺少刻录功能,于是把刻录机拿过来集成在里面。这下爽了,下次内存不足的时候也直接拿一条好了。
2、 新手写程序时,类不要分得太多,也不要把所有东西放在一个类中。因为这很容易牵一发动全身的。而且代码不能重用。最主要的是读那代码会很辛苦的。
这让我想起以前到现在都在研究的一个飞机游戏。单单类文档就580行,而且很少注释。看着它我感到很茫然,作为一个新手的我感到鸭梨很大……
3、 如果真的要用继承的话,新手们,不要超过3层了,否则逻辑很容易混乱的,黑羽说,6层以上的是架构师们的事了。除非你是爱因斯坦吧(貌似现在英国有个13岁的小女孩智商比爱因斯坦还高?)。
最近菜头帮上老在讨论着设计模式。其实嘛,作为新手就对这个不需要太过于执着,但也不太过于冷淡。设计模式在我们写代码过程中就很自然地形成的。这时cobersky就来句惊人发言了:让你写一辈子的HelloWorld也写不出一个windows。
(我……我什么时候才能写出一个HelloWorld啊T^T……)
好吧,但先让我们新手写好这个HelloWorld好么?
要学设计模式就去看秋神的贴子吧。
http://bbs.9ria.com/thread-77927-1-1.html
另外黑羽要求我们去看看这些
OO五大原则(1.SRP 单一职责原则)
OO五大原则(2.OCP——开闭原则)
OO五大原则(3.LSP——里氏替换原则)
“依赖倒转”原则(DIP)
OOD的设计原则--接口隔离原则
好吧,这星期讲了一下二维数组。
所谓二维数组。也只是
Var ary1:array = new array();
Var ary2:array = new array();
Var ary:array = new array();
ary.push(ary1);
ary.push(ary2);
这样而已。
把一个数组放到另一个数组。
(坑爹啊。大学时的老师有木有这样说!!!!!!!纯洁的计算机学生你伤不起啊!!!!!!!!!!)
二维矩形使用实例如附件,不解说了。无力啊……囧~
array.rar (1018 Bytes)
第二个实例,永恒的打砖头游戏……
前面已经放过一个大砖头的代码了,但那个只写在时间轴上。这次我们分开类来写。
首先,我们需要砖头(Brick),小球(Ball),挡板(Bar),文档类(BlickBreak)
我们让他们做自己的东西,然后在文档类结合起来。
1、 砖头,砖头什么都不用做,纯粹的小受,那也太无聊了,我们就给个HP给他。
private var HP:int = 4*Math.random();
这个设置成私有,否则就对砖头太不负责任了,那么文档类怎么获得他呢?
用setter和getter吧。
写好setter和getter后就够了。


