![]() |
1
3
有(至少)三种方法可以做到这一点: 1.使用 Factory method@亚历杭德罗·巴比奥的回答就是这种模式的一个很好的例子。它的缺点很少,但你必须记住始终使用工厂方法。如果第三方代码正在创建您的对象,这可能是一个挑战。
2.覆盖
|
![]() |
2
2
另一种选择是使用 polymorphic association ,您的类可能如下所示:
创建实例时,需要创建源,然后创建并分配一个具体的
你可能想
你的
使用这种方法,您可以要求
|
![]() |
3
1
如果我是你,我会添加一个返回正确实例的类方法。
然后您将获得所需的行为:
和
注意:在阅读您的评论后,变成:它
code
使用
|