| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 588 人关注过本帖
标题:我问一个问题,关于公有和私有的。
只看楼主 加入收藏
hackerjiang
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:地球
等 级:版主
威 望:3
帖 子:780
专家分:111
注 册:2007-4-27
结帖率:100%
收藏
 问题点数:0 回复次数:3 
我问一个问题,关于公有和私有的。
我最近在改善自己的三维引擎,在处理接口的时候,遇到了一个矛盾。
引擎定义了很多特效是否开启的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 编辑 ]
搜索更多相关主题的帖子: 经验主义 接口 矛盾 
2011-07-23 23:12
lz1091914999
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:四川
等 级:贵宾
威 望:37
帖 子:2011
专家分:5959
注 册:2010-11-1
收藏
得分:0 
一是怕你不够严谨,二是为了你维护着想。

My life is brilliant
2011-07-23 23:18
hackerjiang
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:地球
等 级:版主
威 望:3
帖 子:780
专家分:111
注 册:2007-4-27
收藏
得分:0 
回复 2楼 lz1091914999
引擎里这种代表某种效果是否开启的bool变量很多,少说也有十几个。每个都定义三个接口,很烦的。看着就不爽。

(づ ̄ 3 ̄)づ
2011-07-23 23:23
lz1091914999
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:四川
等 级:贵宾
威 望:37
帖 子:2011
专家分:5959
注 册:2010-11-1
收藏
得分:0 
C语言提供了描述思想的方法,而与人类的语言又是不同的,Enable Disable IsEnable这样的语法接近人类语言,而单单的进行赋值却不在人类语言的理解范围内,而且你的引擎也可能给别人用,别人看到你写的代码就能知道你是一个怎样的编码人看员,要让别人认为自己专业。

[ 本帖最后由 lz1091914999 于 2011-7-24 17:09 编辑 ]

My life is brilliant
2011-07-24 11:39
快速回复:我问一个问题,关于公有和私有的。
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.024991 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved