1
1
我不知道谁编写了这段代码的确切意图是什么,但在这种类的组织中,很明显,使用组合和继承,
DummySSLSocketFactory公司
可以
使用受保护的方法
实施于
SSLSocketFactory公司
甚至是上面的类(使用super)。
在DummySSLSocketFactory的构造函数中设置
如果没有这个参考,您将能够使用super访问SSLSocketLayer,但不能使用更高级别的类。 |
2
0
这是一种常见的模式(如您所述)。
子类可以扩展类(或实现接口)以建立“is-A”关系。
在你的例子中,
子类可能不希望完全重写(或在接口的情况下实现)方法,
因此,它使用组合来获得一些已经覆盖了无趣但必需的方法的内容。
为此,
子类将向组合成员转发对“无趣”(我在那里的术语)方法的调用。
在您的示例中,原始类
向组合成员转发调用是代理模式的一种变体。它不是完全代理,因为它改变了功能。 |
Jivan · 使用mypy在Python中强制合成 2 年前 |
woockashek · Java中同一类的继承和组合 6 年前 |
Sepehr Sobhani · 函数Ramda在范围外传递函数参数 6 年前 |
M. Pilarczyk · 如何确保合成方法的安全? 8 年前 |
daign · 在JavaScript中混合作为对象本身的对象属性 8 年前 |
arjacsoh · 当不允许多重继承时,如何避免代码重复? 10 年前 |