使用相似的数据传输对象实施哪种 java 模式
Which java pattern to implement with similar Data Transfer Objects
我有一个 class,我目前像 dto 一样使用它,我必须创建另一个 class 具有相似的属性(少于实际的属性),它有一个与此相关的模式?我认为适配器会有所帮助,但我不知道如何做。
class ONE {
ObjectA oa;
ObjectB ob;
ObjectC oc;
String id;
String name;
String someId;
String country;
}
class TWO {
ObjectB ob;
ObjectC oc;
String name;
String someId;
String country;
}
有线索吗?
我看到两个选项可供使用:
- Inheritance:使两个超级 class(更少的属性)和一个子,因为它具有更多属性(两个属性和其他属性的属性)。
- Interface and abstract class:根据描述的问题我建议使用上面的继承(in 1.)。
使用 super 和 sub 的示例class
class ONE extends TWO{
ObjectA oa;
String id;
}
class TWO {
ObjectB ob;
ObjectC oc;
String name;
String someId;
String country;
}
组合优于继承。
class ONE {
ObjectA oa;
String id;
TWO ot;
}
class TWO {
ObjectB ob;
ObjectC oc;
String name;
String someId;
String country;
}
在这里你必须推理使用inheritance/composition是否有意义。 class ONE
和 TWO
的名字不好说,我再举个例子。比如说,我们有一个 Vehicle 和一个 Phone class 像这样,
class Vehicle {
String model;
String color;
String type;
}
class Phone{
String model;
String color;
String type;
String brand;
Integer core;
Integer ramInGB;
}
这里Vehicle
和Phone
class有一些共同点。但是你不能像这样改变Phone
class Phone{
Vehicle v;
String brand;
Integer core;
Integer ramInGB;
}
或
class Phone extends Vehicle{
String brand;
Integer core;
Integer ramInGB;
}
在任何地方使用任何设计模式之前,您必须判断在该场景中使用它是否合理。不要为了使用而使用设计模式。
回到这个例子,如果 ONE 和 TWO 在任何意义上都不相关,你应该让它们保持联系。但如果是,您可以使用继承或组合。这是一个 link,您可能想在做出选择之前先通读一遍。
我有一个 class,我目前像 dto 一样使用它,我必须创建另一个 class 具有相似的属性(少于实际的属性),它有一个与此相关的模式?我认为适配器会有所帮助,但我不知道如何做。
class ONE {
ObjectA oa;
ObjectB ob;
ObjectC oc;
String id;
String name;
String someId;
String country;
}
class TWO {
ObjectB ob;
ObjectC oc;
String name;
String someId;
String country;
}
有线索吗?
我看到两个选项可供使用:
- Inheritance:使两个超级 class(更少的属性)和一个子,因为它具有更多属性(两个属性和其他属性的属性)。
- Interface and abstract class:根据描述的问题我建议使用上面的继承(in 1.)。
使用 super 和 sub 的示例class
class ONE extends TWO{
ObjectA oa;
String id;
}
class TWO {
ObjectB ob;
ObjectC oc;
String name;
String someId;
String country;
}
组合优于继承。
class ONE {
ObjectA oa;
String id;
TWO ot;
}
class TWO {
ObjectB ob;
ObjectC oc;
String name;
String someId;
String country;
}
在这里你必须推理使用inheritance/composition是否有意义。 class ONE
和 TWO
的名字不好说,我再举个例子。比如说,我们有一个 Vehicle 和一个 Phone class 像这样,
class Vehicle {
String model;
String color;
String type;
}
class Phone{
String model;
String color;
String type;
String brand;
Integer core;
Integer ramInGB;
}
这里Vehicle
和Phone
class有一些共同点。但是你不能像这样改变Phone
class Phone{
Vehicle v;
String brand;
Integer core;
Integer ramInGB;
}
或
class Phone extends Vehicle{
String brand;
Integer core;
Integer ramInGB;
}
在任何地方使用任何设计模式之前,您必须判断在该场景中使用它是否合理。不要为了使用而使用设计模式。
回到这个例子,如果 ONE 和 TWO 在任何意义上都不相关,你应该让它们保持联系。但如果是,您可以使用继承或组合。这是一个 link,您可能想在做出选择之前先通读一遍。