我是Java EE nooby开发人员,根据互联网上的许多资源声称服务定位器设计模式是一种反模式,因为它隐藏了类依赖性和更多东西,应该尽可能多地避免和使用相反,我们知道JNDI是服务定位器模式的实现。
我用谷歌搜索JNDI是服务定位器的实现,我发现这个响应声称:Understanding JNDI
虽然我看到JNDI在Java EE应用程序中用于多种用途(数据源,EJB查找......),我应该使用它还是应该尽可能地避免它?如果JNDI不是这样的话那么服务定位器是不是<?p?
答案 0 :(得分:1)
我认为问题的一部分,无论服务定位器是好还是JNDI是否与此模式有关,都有点深奥。我可以在这里作为一名软件架构师提供一般性建议多年来,一个模式本身并不好也不坏,它只是一个在很多情况下成功使用的解决方案,因此被宣布为一种模式为了用于将来类似的案件。另一件事是,与许多年前相反,当人们为了在面试中存活而必须知道GoF书籍时,理所当然地理解像Java EE这样的框架的基本概念比实现所有这些更为重要。这些模式,因为你必须实现的往往非常简单和直接,但使用依赖这些概念。
关于你问题的第二部分,你几乎不需要直接使用JNDI,而是使用基于它构建的概念作为注入 - 这是你应该在你的应用程序中使用的。