为什么要使用转换器呢?

时间:2018-02-01 14:57:16

标签: jsf converter

balusc提供了关于如何使用JSF转换器的明确答案以及为什么需要进行转换here,但我的问题是为什么要打扰?专门用于转换的额外课程对我来说似乎很臃肿。为什么不简单地让支持bean的setSelectedXXX()方法接受一个String而不是一个对象并在那里而不是在Converter.getAsObject()中进行转换?事实上,我更清楚的是命名支持bean的setSelectedXXX()方法,如setSelectedXXXByName()或setSelectedXXXById()。

我的具体问题是我的支持bean包含selectItems列表,我需要迭代它以按名称或ID查找所需的selectItem,而不是Converter类。当然转换器可以调用backingBean.getXXX()来获取这个列表,但是在支持bean之外的逻辑看起来像是碎片。是否有充分的理由让我失踪?

1 个答案:

答案 0 :(得分:3)

  

为什么要使用转换器?

因为优秀的软件开发人员对Law of Demeter感到烦恼。

  

事实上,我更清楚的是命名支持bean的setSelectedXXX()方法,如setSelectedXXXByName()或setSelectedXXXById()。

事实上,在您需要执行完全相同的转换的另一个支持bean中,此类方法并不是非常可重用。因此,这些方法很容易被复制,而这又会违反DRYKISS

只需使用BaseEntityConverteromnifaces.SelectItemsConverter即可拥有一个您永远无需担心的转换器。

相关问题