gpt4 book ai didi

java - 以不同方式从另一个对象创建一个对象的设计模式

转载 作者:搜寻专家 更新时间:2023-11-01 01:23:36 26 4
gpt4 key购买 nike

我必须以 4-5 种不同的方式使用对象 Y 的属性(两者都是同一类型)创建对象 X,即根据情况,Y 的这些属性可用于以不同方式初始化 X。一种方法是,使用默认构造函数创建一个对象 X,然后设置其属性,但它有一个缺点,即如果出现某些问题,那么我们的对象将处于不一致状态。另一种方法是为所有带有虚拟参数的情况创建不同的构造函数,这听起来很糟糕。我可以在这里使用任何好的设计模式吗?

最佳答案

如果两个对象属于同一类型,则可以使用工厂方法:

public class Foo {
...
public Foo withBar(...) {
Foo f = new Foo(this.param);
f.setBar(...);
return f;
}

public Foo withBaz(...) {
Foo f = new Foo(this.param);
f.setBaz(...);
return f;
}
}
...
Foo y = ...;
Foo x = y.withBar(...);

如果类型不同,您可以将工厂方法设为静态并将 Y 作为参数传递。

关于java - 以不同方式从另一个对象创建一个对象的设计模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5954192/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com