注:本人水平也有限,此贴为经验分享,非教程。有任何错误之处,烦请指出。
先把这三者分开来讲,最后会以我手头的工程为例子,把三者合在一起。
首先说说父对象。我本人平常开发的时候是比较频繁使用父对象的,但我发现一些新人似乎完全不用,甚至完全不理解父对象,没有得到父对象这一功能对开发效率的提高以及对工程结构的清晰化。
先用自己的话解释一下GM里的父对象:
GM中父对象(Parent)的概念,即其他语言中“继承”或“派生”的概念。那继承又是什么意思呢?我们生活中常听到,谁谁谁的小孩继承了他爸爸什么什么特点,意思是这个小孩(子对象)拥有他父亲(父对象)的某些特点。但同时,毕竟这个小孩是不同于他父亲的另一个人,所以在拥有他父亲的某些特点的同时,也会有自己不同于其父亲的特点。因此,我们可以推出,父对象的作用是令其子对象拥有其本身的代码以外同时可以有自己的其他代码。

----------------------------------------
举个例子,你的选关界面有20个按钮,你会怎么做?
A. 编写每一个按钮的时候新建一个object,独立为其写Create事件定义自己需要的变量,写Step事件进行鼠标点击判断和执行点击后的动作,写Draw事件绘制出按钮的背景和文字等;
B. 编写好第一个按钮的各个事件,然后复制19个,再分别打开这19个复制出来的object中的Step事件代码窗口以改变点击后执行的动作;
C. 编写一个父对象,写Create事件定义所有按钮都共有的变量,写Step事件进行鼠标点击判断,写Draw事件绘制背景,再创建20个对象继承自这个父对象,这20个新建的object不需要修改任何地方也不需要自己写点击判定代码,只需要写上点击后的动作。
-----------------------------------------
从创建时的工作量来说,A排除,因为要打的代码比另外两个多太多。B和C的工作量类似。
从整个工程中的代码量来说,C明显比A和B要少很多。
从修改时的工作量来说,倘若你后来发现你的按钮的判定代码书写有误,或者你要为所有按钮添加一个共同的新功能,那么A和B要一个一个打开来重复地修改相同的地方,而C只需要打开父对象修改一次对应位置。
由此可见,使用父对象对开发效率有很大的提高,对于大工程中各个object之间的关系也有了更好的结构。
先把这三者分开来讲,最后会以我手头的工程为例子,把三者合在一起。
首先说说父对象。我本人平常开发的时候是比较频繁使用父对象的,但我发现一些新人似乎完全不用,甚至完全不理解父对象,没有得到父对象这一功能对开发效率的提高以及对工程结构的清晰化。
先用自己的话解释一下GM里的父对象:
GM中父对象(Parent)的概念,即其他语言中“继承”或“派生”的概念。那继承又是什么意思呢?我们生活中常听到,谁谁谁的小孩继承了他爸爸什么什么特点,意思是这个小孩(子对象)拥有他父亲(父对象)的某些特点。但同时,毕竟这个小孩是不同于他父亲的另一个人,所以在拥有他父亲的某些特点的同时,也会有自己不同于其父亲的特点。因此,我们可以推出,父对象的作用是令其子对象拥有其本身的代码以外同时可以有自己的其他代码。

----------------------------------------
举个例子,你的选关界面有20个按钮,你会怎么做?
A. 编写每一个按钮的时候新建一个object,独立为其写Create事件定义自己需要的变量,写Step事件进行鼠标点击判断和执行点击后的动作,写Draw事件绘制出按钮的背景和文字等;
B. 编写好第一个按钮的各个事件,然后复制19个,再分别打开这19个复制出来的object中的Step事件代码窗口以改变点击后执行的动作;
C. 编写一个父对象,写Create事件定义所有按钮都共有的变量,写Step事件进行鼠标点击判断,写Draw事件绘制背景,再创建20个对象继承自这个父对象,这20个新建的object不需要修改任何地方也不需要自己写点击判定代码,只需要写上点击后的动作。
-----------------------------------------
从创建时的工作量来说,A排除,因为要打的代码比另外两个多太多。B和C的工作量类似。
从整个工程中的代码量来说,C明显比A和B要少很多。
从修改时的工作量来说,倘若你后来发现你的按钮的判定代码书写有误,或者你要为所有按钮添加一个共同的新功能,那么A和B要一个一个打开来重复地修改相同的地方,而C只需要打开父对象修改一次对应位置。
由此可见,使用父对象对开发效率有很大的提高,对于大工程中各个object之间的关系也有了更好的结构。



















