黑马程序员技术交流社区

标题: 面向对象的设计? [打印本页]

作者: 午夜b'Boy    时间: 2014-2-25 23:54
标题: 面向对象的设计?
本帖最后由 午夜b'Boy 于 2014-2-28 00:59 编辑

一颗种子,发芽,长成花苗,开花,结果。。用面向对象的思想如何体现?
作者: 午夜b'Boy    时间: 2014-2-26 00:02
个人觉得用枚举,像交通灯的设计,next()一次进入下一个阶段!但都是一个枚举类,具有不同枚举值!
作者: 榨菜    时间: 2014-2-26 00:47
建立一个工厂,原料为种子,可以设置种子有出芽的方法,出来的是苗。   再一个工厂,原料为芽,出来的是苗。  苗有长大的方法,出来的是树。树有开花的方法,出来的是果。

所以可以定义对象有 种子   苗   树   花   果
作者: 我要的幸福呢    时间: 2014-2-26 04:21
我是这么想的,因为植物的生长过程基本上都是这样的,所以可以写一个植物类Plant,有一个生长的方法grow(),种子、发芽、花苗、开花、结果只是植物生长的不同阶段(状态),所以可以定义成常量,用于判断当前处于什么阶段什么的。
因为植物生长都需要阳光水分什么的,所以可以写一个接口,在其中定义一些接收阳光水分之类的方法,让植物类implements这个接口,通过不断接收养分成长到不同的阶段。
然后,因为可以人为的给植物施肥修剪枝叶什么的,所以可以写一个装饰类,在其中提供这些加强的功能。

作者: 午夜b'Boy    时间: 2014-2-26 07:30
我要的幸福呢 发表于 2014-2-26 04:21
我是这么想的,因为植物的生长过程基本上都是这样的,所以可以写一个植物类Plant,有一个生长的方法grow() ...

嗯,感觉已经很接近了,在深入一点,设计一个摘果实的方法,我的想法是此方法接收(植物.class)返回一个果实类,果实内部通过反射得到对应的种子!


作者: 何苦似梦离    时间: 2014-2-26 07:55
本帖最后由 何苦似梦离 于 2014-2-26 08:00 编辑

一颗种子,发芽,长成花苗,开花,结果,我们用一个共同的状态指向它们,也就是植物,然后对象发芽的初始化需要通过,一个函数,这个函数必须获取种子,然后依次类推.
作者: 午夜b'Boy    时间: 2014-2-26 15:25
植物类设计好了之后,要开辟一个牧场,又要如何实现?




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2