2011-10-18 40 views
-1

我一直问自己的一个问题是面向对象编程,应该如何以面向对象的方式传递设置和属性等数据?组织数据并组织访问权限?

例如,大多数程序都有选项,假设您可以选择设置撤消级别。这必须获得,然后设置为一个新的值。如果这些设置保存在xml文件中,应用程序的该部分(选项对话框)仍然需要某种xml解析器来加载数据。在另一种情况下,您将代替获取和设置设置的对象,每个需要此区域的区域都可以全局访问所有设置,并且需要传递指向它的指针。

在像Maya或3DS Max这样的场景中,这些场景使用巨大的gui系统来设置对象属性,这是如何以干净和OO的方式完成的?该小部件需要从3D对象获取数据,并且需要向该对象发送信息。一个对话框应该知道关于3D对象的任何事情吗可能不会。那通常是怎么做的?

在另一种情况下,我可能需要更新状态栏,当我的框架获得鼠标移动时。这是否意味着我的框架应该有一个指向我的状态栏的指针?

任何抽象的例子或读这个将不胜感激。

感谢

+1

你在开我玩吗,这是一个很好的问题... – jmasterx

回答

2

在之前的工作中,我们有几个XML文件我们的各种应用程序等的配置相似,但根据环境和执行上下文变化。大部分配置都是第三方服务的用户名和密码。当密码发生变化时,我们不得不冲过数十个XML文件并进行更改,然后重新部署数十个应用程序。

我使用接口和类型层次结构将所有XML配置迁移到对象。这些接口使我能够针对通用配置结构进行编码,并获得编译时支持以及使用依赖注入来解析运行时实例。类型层次结构允许我在基类中定义一次不变的配置,并且只覆盖不同的实际值。

这对于一个小应用程序来说可能是过量的,但在我们的案例中却是必不可少的。

+0

谢谢!这很有趣 :) – jmasterx