【发布时间】:2016-10-24 06:11:39
【问题描述】:
假设有两个对象,例如。一个代表公共 API (JSON),另一个代表模型(JPA 实体)。它们有一些差异,但大多数时间字段是通用的。
class A {
String name;
}
class B {
String name;
}
请注意,为简单起见,我将这些类保持得非常简单。
我们必须将一种转换成另一种才能使这种设计正常工作。
一方面,我们有实例方法。这似乎是一种直观的方法。我们已经有了一个对象,所以实例方法似乎是合乎逻辑的解决方案。访问字段很容易。它也很容易阅读和理解代码。它将一个对象与另一个对象联系在一起,但无论如何它们都是一对。
static class A {
String name;
B toB() {
B b = new B();
b.setName(name);
return b;
}
}
另一种方法是使用静态方法。这似乎更像是一种建造者模式。对象是基于依赖关系构建的。如果需要,转换方法可能会被重载并使用不同的输入,这增加了灵活性。然而,静态方法通常不适用于 OOP 范式。
static class A {
String name;
static A from(B b) {
A a = new A();
a.setName(b.getName());
return a;
}
}
现在,团队之间正在讨论哪种方法在 OOP 方面更好?它们中的任何一个都可以被视为最佳实践吗?或者也许我们应该应用其他解决方案?
简单地说 - 在这种情况下最好的方法是什么?
【问题讨论】:
标签: java static-methods data-conversion