有很多情况我希望
this=somevalue
在 Java 中是允许的。例如,当我在超类 Person 中并且我想将类型从 Person 修改为 Customer 时,分配如下
this=new Customer();
会有帮助的。想象一下,我有一个客户关系系统,我在其中保存了一个人员列表,我想根据他们的角色以不同的方式处理他们,但只允许一个主角色。所以一个人可以是客户、员工、朋友或......
所有人都以人的身份开始,但在任何时候他们都可以被“提升”为大师。稍后我可能想更改 Masterrole。
即使使用工厂、依赖注入等,如果不使用角色模式,似乎仍然很难获得有效的解决方案。
要获得对对象的引用可以由对象本身修改的预期效果,有什么好的解决方法?我的第一个想法是拥有一个 Wrapper 对象,它将所有访问权限委托给“真实对象”——真实对象实现了实体的接口,例如 Person。如果我知道要从 Person 转移到 Customer,则包装器会交换“真实”对象。有没有这些方面的解决方案?