面向对象思想的魅力

  到目前我对OOP的认识虽然很浅、不过今天的学习却使我对OOP的认识较以前提升了很大的台阶。

  记得在看C sharp dotnet 的教材时感觉对于面向对象的设计概念真的很模糊,可能是比较抽象、而今天看了看张孝祥老师的一部教程、虽然我不是学习Java的,但是的确、我对于OOP的认识形象多了。

  以下举几个例子:

  (1).人开电脑   -  这里其实只有一个对象,而我们可以将人看作一个数据元素。那么开电脑的这个方法应该在哪个里?如果之前的我,肯定会想开电脑的方法肯定是属于人的啊!其实错了,这个方法应该属于电脑、而我们人只是去调用了这一个对象的事件而已。大家可以想想,人做的是不是仅仅就是按下开机按钮开机的事件是由计算机自己完成的、对吧?

  (2).人打开杯子倒出水 - 那么这里我们也可以看作只有一个对象(杯子),而其中打开杯子和倒出水的方法则属于杯子。当然,人、依然只是去调用这些事件方法而已。

  实战练习:

  对于C sharp 没有什么功底的我,只好给自己命一个简单的题目了……当然,设计要求是“面向对象”设计、这里没有使用标准的语言来写、主要为了表达思路。

  题目:三颗种子可以开六束花,而六束花可以制作一个花环。

  分析:此题中有:种子、花、花环这个三个事物。

  则有:

  Seeds , Flower , Wreath 

  那么三颗种子将得到六束花:Flower = Flowerfactory.createWreath(first seeds,second seeds,third seeds)

  经过上面的步骤,我们得到了6束花。

  最后,我们利用相同的方法、将六束花变成花环:

  Wreath = Wreathfactory.CreatWreath(first Flower ,``````,sixth Flower)

 这样整个程序的思路就很清晰了。

 当然这次只是一次一不小心的了解,不过感觉还是获益良多的。当抽象化为形象,真的是一种快乐!

posted @ 2011-03-25 23:52  victor_li  阅读(235)  评论(0)    收藏  举报