我正在编写适用于以下条件的一段代码:
然后,这些对象中的每一个将在类B中获得自己的设置器,该设置器与在类A实例中创建的对象1:1相对应 即 在A类中:
B b = new B();
final SomethingA somethingA1 = new SomethingA("input1");
b.setSomethingA();
...
final SomethingB somethingB15 = new SomethingB("input15");
b.setSomethingB15();
...
final SomethingA somethingA23 = new SomethingA("input23");
b.setSomethingA23();
所有“事物”都继承自同一类。
设置器只做以下事情:
public void setSomethingX(somethingX){
this.somethingX = somethingX;
}
我真的不想写全部都差不多的23个setter。有像多功能塞特机吗?
其上下文是在非常特定的上下文中准备HTTP响应并使用一些非常特定的框架。显然,这种方式节省了其他地方的很多工作(我对此没有影响)。 另外,您可能会说我是新手开发人员。
答案 0 :(得分:2)
答案 1 :(得分:1)
有一些减少二传手的技术:
1)使用B作为参数创建构造函数
class A {
private B b;
public A(B b) {
this.b = b;
}
}
A a = new A(new B());
2)使用构建器模式(使用龙目岛将很容易实现):
@Builder // lombok annotation
class A {
private B b;
}
A a = A.builder().withB(b).build();
3)使用工厂方法:
class A {
private B b;
public static A newInstance(B b) {
A a = new A();
a.b = b;
return a;
}
}
A a = A.newInstance(new B());