gpt4 book ai didi

java - 谁负责设置对象属性?

转载 作者:行者123 更新时间:2023-11-29 08:18:56 24 4
gpt4 key购买 nike

我有一个带有字段的对象。在一个项目中,我需要这个充满信息的对象。

谁负责填充这个对象?

我想要一个像 getFilledObject() 这样的方法,它向我的程序返回一个完整填充的对象。

我可以将这个逻辑放到主流程中,并“就地”填充它,也可以将这个方法添加到类本身中,这样它就会知道如何根据我传递的参数填充自己。后一个决定已经足够好了,唯一的问题是类必须比简单的普通 get-set 类更了解它的性质。

但我觉得这两个决定都不够好。应该是什么?仅包含填充对象逻辑的辅助类?


你知道,是的,Factory 是我一直在寻找的东西,但它总是与多态性一起被提及。就我而言,我根本不需要它。所以我可以称它为工厂,但它真的是他们所说的“工厂模式”吗?

那么结果是什么呢?一、静态工厂方法

class A {ObjType1 obj1;ObjType2 obj2;public A() {}public static getA(int param1, int param2) {  A a = null;  ObjType3 obj3 = null;   if (somelib.complexCheck(param)) {    obj3 = someotherlib.getSomething(param2);    // other stuff  }  if (obj3 != null) {    // do something with getters & setters, fill a  }  return a;}

和工厂模式或类似的东西

class Fact { public static A getA(int param1, int param2) {   // do all that stuff here }}

在我看来,在静态工厂方法 的情况下,A 类中的大量导入指令会有所不同。此外,如果所有这些都需要相同的库,我们可以将类似的静态方法放入 Fact 类中。

你会在两者之间选择什么?

最佳答案

A helper class that contains only the logic to fill the object

被称为Factory Class .看来这就是你需要的。

另外,看看 Dependency Injection .

关于java - 谁负责设置对象属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1914805/

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