这个问题可能是基于观点的,但我想知道我应该使用哪种原则。这是我的情况。
我有一门课叫TravelOffer。该类如下所示:
public class TravelOffer
{
private final long id;
private final StartZone startZone;
private final EndZone endZone;
private final List<Waypoint> waypoints;
private final Period startOff;
private final User travelCreator;
private final List<User> participantsList;
private final TravelExtras travelExtras;
private final CandidateApprovement candidateApprovement;
private int numberOfSeats;
private double pricePerPerson;
private Luggage luggage;
private boolean additionalLuggageTransport;
private String additionalDescription;
}
如您所见,有以下属性:
User-tavelCreator
和列表
我想知道的是,它应该是这样的,还是简单地用字符串用户标识替换用户对象,然后从单例类中获取将在Hashmap中的用户对象。
有什么想法吗?
参与者列表和
travelCreator
是否符合TravelOffer
的逻辑?如果是,通过userId
将Traveloffer
和User
分离是没有意义的。首选id方法的少数几种情况之一是,如果我们确实需要松耦合(例如,当我们需要根据id从另一个系统进行查找时),这意味着TravelOffer
不需要用户
,但这里的情况并非如此。如果TravelOffer
和User
都是同一个系统的一部分,最好保留对对象的引用而不是id。
我不认为存储ID而不是引用是个好主意。这将使代码更加复杂,因为每次您需要与TravelOffer关联的用户时,您都必须调用返回引用的DAO。只要Java使用引用,你就不必担心内存。其他事情:参与者完全适合TravelOffer,所以它不应该被分割。
比较一下:
travelOffer.getTravelCreator().getName()
userDao.getUser(travelOffer.getTravelCreatorId()).getName()
第一个对我来说看起来更好。
你的问题与对象关系映射有关吗?
问题内容: 我正在尝试从解码为PHP对象的JSON数据中获取一个属性。这只是一个YouTube数据API请求,它返回具有内容对象的视频对象。 在做 抛出“意外的T_DNUMBER”-这很合理。但是,如何获得数字属性的值? 我确定我应该知道这一点。提前致谢。 问题答案: 这应该工作:
问题内容: 传递道具时,应该将整个对象传递到子组件中,还是应该先在父组件中单独创建道具,然后再将这些道具传递给子组件? 传递整个对象: 单独创建首先需要的道具: 哪一个是首选,并且取决于它,我应该使用哪个作为量规? 问题答案: 您应该更喜欢第二个示例,以单独传递道具。在这里,您可以清楚地看到传递了哪些参数,并可以与期望的参数快速比较。这使人们之间的协作更加容易,并使应用程序的状态更加清晰。 我个人
这可能吗?我想将JSON反序列化到POJO结构中,但除此之外,还要在POJO(或子POJO)中保存原始JSON的副本。例如,假设我有以下结构: 现在我有一套简单的两个POJO: 除了正确设置pojo字段之外,是否还可以使用类的完整JSON设置中的? 虽然我可以用自定义方法重新创建它,但我没有映射的任何额外JSON字段都会丢失,我想保留这些字段以用于异常日志记录(即,我需要上游系统发送的原始JSON
这是我的代码: 我想将的值设置为,我该怎么做?我试过,
我试图创建一个类来保存数量可变的项(它们本身就是另一个类对象)。 我有第二课: 然后类1包含类2的数组: 我想做的是: 第一行设置myQuotes。Curr是没有问题的,但是当我试图在数组中设置一个值时,下一行错误与运行时91对象变量或块变量未设置 有没有关于我做错了什么以及如何设置类数组中元素的值的指针? 提前谢谢!
我的管道选项如下 ImportOptions当前接受input_table作为参数。 但是运行管道会给我一个如下所示的错误 我正在使用下面的命令构建模板。 python-m main --runner DataflowRunner --project test-project --region=europe-west1 --staging_location gs://test/staging_py