我希望有很多情况
this=somevalue
将被允许在Java中使用。 例如。当我在超类Person中时,我想将类型从Person修改为Customer a 像
这样的作业this=new Customer();
会有所帮助。想象一下,我有一个客户关系系统,我保留了一个人员列表,我想根据他们的角色以不同的方式处理它们,但只允许一个主角色。因此,一个人可以是客户,员工或朋友或......
所有人都是从人开始,但在任何时候他们都可以“晋升”为一名士兵。后来我可能想要改变Masterrole。
即使使用Factories,Dependendy注射等,如果不使用角色模式,仍然很难获得可行的解决方案。
获得想要的效果,对象本身可以修改对象的引用,这将是一个很好的解决方法吗?我的第一个想法是让一个Wrapper对象委托对“真实对象”的所有访问 - 真实对象实现实体的接口,例如人。 如果我知道要从Person移动到Customer,则包装器会交换“true”对象。这些方面有没有解决方案?
答案 0 :(得分:2)
我想你想要实现的不仅仅是更改this指针,还包括对实例的所有引用。所以使用包装器的方法似乎是要走的路。
答案 1 :(得分:0)