游戏开发论坛

 找回密码
 立即注册
搜索
楼主: 千里马肝

封装的意义和喻义

[复制链接]

8

主题

716

帖子

716

积分

高级会员

Rank: 4

积分
716
 楼主| 发表于 2007-1-22 13:28:00 | 显示全部楼层

Re:封装的意义和喻义

你并没有明白我前面的话

5

主题

217

帖子

222

积分

中级会员

Rank: 3Rank: 3

积分
222
发表于 2007-1-22 15:16:00 | 显示全部楼层

Re:封装的意义和喻义

呵呵
那就算了

但我还是不相信
纯虚接口的抽象类就没用了…

0

主题

9

帖子

11

积分

新手上路

Rank: 1

积分
11
发表于 2007-1-23 11:38:00 | 显示全部楼层

Re:封装的意义和喻义

引用马肝的话:

       同样如果直接操作public/protected的虚函数,因为virtual是多态的,其设计目的是针对其派生类的实现行为,表现是不稳定的,当需求发现变化(比如在函数实际调用前要增加一段检查),这时它就无法实现而最后还是必须退回使用一个non-virtual public的接口如Render,其中会调用一个virtual的private成员函数如DoRender来实现,请注意前面两者的称呼一个叫接口另一个叫成员函数.


To MathSlope:
   如果只是简单的请求转发就没必要,这样反而增加了调用开销。如果是增加一些前期,后期处理那就有必要了。但这根本是两个接口的问题。

8

主题

716

帖子

716

积分

高级会员

Rank: 4

积分
716
 楼主| 发表于 2007-1-23 19:07:00 | 显示全部楼层

Re:封装的意义和喻义

引用C++标准委员会主席HerbSutter的话是说像这样仅仅是一个non-virtual的public函数调用private的virtual函数,目前主流的compiler都会自动转为inline,则意味着不存在函数调用开销

29

主题

405

帖子

405

积分

中级会员

Rank: 3Rank: 3

积分
405
发表于 2007-1-30 00:37:00 | 显示全部楼层

Re:封装的意义和喻义

看过了,确实精辟,有一种被洗脑的感觉.
不过对于我这种还处于初级阶段的人来说,先写过设计大量代码和类,熟悉了大规模软件的架构,设计模式思想,再回过来看他的内容会更好点,也更有意义点.因为我觉得这本书的深度有点超过设计模式了,简洁深刻的背后就是反扑归真.
当然,如果知道C++ Compiler的设计方式就更好了.

29

主题

405

帖子

405

积分

中级会员

Rank: 3Rank: 3

积分
405
发表于 2007-1-30 18:45:00 | 显示全部楼层

Re:封装的意义和喻义

今天又有点体会
虽然书上说的不错,设计成
class A{
public:
    void SetData( size_t t ){SetData(...);}
private:
   virtual void SetData(...);
};
从封装性和静态连接上说要好于
class A{
public:
     virtual void SetData(size_t t);
};
但如果要被类导到dll里的话,就必须用下面这种了.因为不可能静态连接成功的.10楼说的组件那肯定要用virtual,没什么好说的.

1

主题

5

帖子

11

积分

新手上路

Rank: 1

积分
11
发表于 2007-4-1 22:26:00 | 显示全部楼层

Re:封装的意义和喻义

这确实是一本好书,我本人也非常认同马干兄的说法,为什么要这样设计,做为编程人员,或许要在几个大项目后才有所感悟,还是那句话,能证明“接口非虚,虚函数为私有”这句话正确与否的人,只有自己,何不亲自试试

6

主题

390

帖子

400

积分

中级会员

Rank: 3Rank: 3

积分
400
发表于 2007-4-28 13:58:00 | 显示全部楼层

Re:封装的意义和喻义

顶前戏
顶高潮
顶星际理论~~

44

主题

305

帖子

435

积分

中级会员

Rank: 3Rank: 3

积分
435
发表于 2007-5-9 02:03:00 | 显示全部楼层

Re:封装的意义和喻义

1

主题

26

帖子

26

积分

注册会员

Rank: 2

积分
26
发表于 2007-6-20 08:48:00 | 显示全部楼层

Re:封装的意义和喻义

中国华录集团诚聘——游戏开发人才!
1、软件设计师:5人,计算机相关,本科及以上,英语6级,嵌入式软件开发经验2年以上,3D图像技术相关经验者优先,会日语者优先,工作地点大连。
2、硬件设计师:5人,电子通信相关,本科及以上,英语6级,相关电子产品开发经验3年以上,RF电路技术相关经验者优先,工作地点大连。

热忱欢迎各界精英加入!
公司地址:大连市高新园区华路1号
公司网站:www.hualu.com.cn
邮编:116023

联系邮箱:hanfzh@hualu.com.cn

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-2-26 23:04

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表