文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>GObject的对象属性

GObject的对象属性

时间:2009-08-23  来源:lixianjing

转载时请注明出处和作者联系方式

文章出处:http://www.limodev.cn/blog
作者联系方式:李先静 <xianjimli at hotmail dot com>

在glib对象系统中,一般的类都是从Gobject类继承过来的。尽管glib是用C语言开发的,它却几乎支持所有的面向对象的特性。这里不谈glib的面向对象机制,只是说说关于GObject对象属性的一些问题。

在OOP中,对象的属性一般用成员变量来表示。编程高手常常告诫我们,把对象的属性隐藏起来,用成员函数去访问,可以减少与使用者之间的耦合,同时可以提高程序的健壮性。

实际上,仅仅是把对象的属性封装起来,有时是不够的。比如,你无法通过基类的指针去访问子类的属性。要做到这一点,需要把这些 setter/getter函数实现成虚函数,在子类中去重载它们。不过,这样做会让基类的接口显示很庞杂,而且实际上你也无法预知子类中的会有哪些属 性。

另外一个更重要问题是,有时候外部对象可能会关心某个对象的属性改变。比如,像对话框可能关心其上控件的属性的变化,控件的属性变化时,对话框需要做一些调整。如果能实现一种机制支持这种功能将有很大用处。

Gobject定义了两个函数(get_property/set_propery),用于存取对象的属性,在子类中重载这两个函数就行了,不用实现一大堆setter/getter函数,同时它提供了一种对象属性监视机制,在对象属性改变时通知相关关注者。

相关阅读 更多 +
排行榜 更多 +
僵尸你别拽安卓版

僵尸你别拽安卓版

飞行射击 下载
仓鼠村庄最新版

仓鼠村庄最新版

模拟经营 下载
棒球高手汉化版

棒球高手汉化版

休闲益智 下载