1.有人可以解释多个调度是如何违反封装的(使用C ++)吗?
我正在阅读scott meyers item31,他说“我们已经很多地将adios命名为封装,因为每个碰撞函数必须知道它的每个兄弟类,即那些从GameObject继承的类。”
如果A类与其他类有多个依赖关系,比如B,C,D等,它仍然只能通过其他类的接口访问数据。这将如何违反类封装?在某些文本中,我还读取了多个调度,违反了基于对象的封装。什么是基于对象的封装? (任何人都可以解释这在c ++中意味着什么)。提前致谢
答案 0 :(得分:2)
Meyers所说的是,一个类必须知道另一个类的事实,否则它不需要知道,是封装的丧失。它必须知道兄弟姐妹才能实现碰撞功能。如果我们已经实现了封装,那么兄弟姐妹就不需要知道任何其他兄弟类。