java类设计以处理未来的更改

java类设计以处理未来的更改,java,oop,design-patterns,Java,Oop,Design Patterns,如果收到的对象[json或excel文件]有10个字段。在这10个字段中,4个是稳定的,而6个字段及其名称正在更改。可以从给定的6个字段中删除字段,也可以添加新字段。如何在将来设计类或处理这样的情况,而只需进行最小的更改让我们假设在示例中,您的文件中表示了用户信息。当您有稳定和不稳定字段时,简单地将不稳定的数据放到不同的类中 class User { String name; String surname; String gender; I

如果收到的对象[json或excel文件]有10个字段。在这10个字段中,4个是稳定的,而6个字段及其名称正在更改。可以从给定的6个字段中删除字段,也可以添加新字段。如何在将来设计类或处理这样的情况,而只需进行最小的更改

让我们假设在示例中,您的文件中表示了用户信息。当您有稳定和不稳定字段时,简单地将不稳定的数据放到不同的类中

class User {
       String name;
       String surname;
       String gender;
       Integer age;
       Metadata metadata;

     //constructor that receive all this data

 }

class Metadata {
//here fields that's you change in future but
//class User don't need to know about this changes
}

可能只是使用一个地图。一个地图如果被孩子访问可以被修改。我不希望任何人更改稳定字段的名称。您可以将其设置为不可变的映射。您的意思是使用稳定字段添加基类,并使用类对其进行扩展,以便子类具有不稳定字段吗?@user3401717不,在我的回答中,User和Metadata是两个不同的类,这里不需要扩展