我问一个问题,关于公有和私有的。
我最近在改善自己的三维引擎,在处理接口的时候,遇到了一个矛盾。引擎定义了很多特效是否开启的bool变量。
我按照传统方法,把bool变量设置成私有,然后为每个bool 都写 Enable、Disable、IsEnable 三个接口
随着定义的bool越来越多,我开始反思。这种方式在我看来很鸡肋。
其实直接把bool变量公有,会省事很多。当我把这个想法提出来的时候,一些经验主义者说“不建议这样”。
在我看来,现在虽然bool是私有的,但是接口还是公有的啊,而且谁都有资格调用它,所以从另外一个角度理解,可以视为直接把bool公有是等效的。
因为例如 Enable() 的代码其实就是:
void OpenGL::Flog_Enable()//开启“雾”效果 { bool bool_Flog_Enable = true; }
那我直接把bool变量公有化,让调用者直接改变bool,就不用去繁琐地定义三个接口。
我肯定,绝大多数人还是站在私有一方,但是能否说出一个令人信服的理由。或者说公有化的弊端。
[ 本帖最后由 hackerjiang 于 2011-7-23 23:21 编辑 ]