【发布时间】:2012-01-22 06:19:43
【问题描述】:
我目前正在寻找一种适当的方法来限制特定类型的类对方法的使用。更清楚地说,情况如下:
我有一个专门用于服务器网络的课程(我们称之为ClientSession)。客户端连接到服务器后,有 30 秒的时间进行身份验证,否则服务器将关闭连接。
身份验证由服务器上的另一个类处理(我们称之为Authenticator),它应该“警告”ClientSession 客户端身份验证成功并且可以取消 30 秒计时器。
问题是,这需要Authenticator 调用ClientSession 的公共方法。但我不希望任何人都能调用该方法。
总而言之,我希望Authenticator 成为唯一能够调用ClientSession::clientAuthSuccessful() 方法的类。
我研究了两件事:
- 朋友方法,但我不希望
Authenticator能够通过朋友方法访问所有私有方法和属性或ClientSession。 - Visitor 设计模式,但它似乎并没有完全符合我的要求(除非我误解了它的用法)。
还有其他方法可以有这样的特定限制吗?还是一个干净的替代品?
【问题讨论】:
-
stackoverflow.com/questions/7582664/… 可能是您正在寻找的。但我会选择好的旧文档。
标签: c++ encapsulation