我需要了解Java中面向组件的编程,我相信这与EJB相关,但我不确定...这是真的吗?
请您给我一些与Java中面向组件编程相关的链接,以便有一个关于它的起点?
谢谢!
答案 0 :(得分:6)
面向组件的编程是一种将问题分解为主要部分(“组件”)的方法,每个部分在解决问题时都有特定的角色或责任域。
企业在某种程度上是面向组件的,因为它包括“会计”,“采购”,“销售”等部门,这些部门对业务需要提供的某些任务具有完整的域名。
面向对象和组件方向之间的差异是规模和可重用性。面向对象思维倾向于关注小对象的紧密集成,其中对象在整个软件产品中被重用。以组件为导向的思维倾向于关注责任孤岛,这些孤岛大多独立运作,可能会或可能不会与其他组件共享共同对象。
JDBC数据库驱动程序是面向组件思维的一个很好的例子(在面向对象的世界中实现)。您不关心编码的数据库驱动程序或数据库通信的详细信息,因为您的组件(JDBC驱动程序)在内部处理所有这些。
不同类型的EJB也是组件。对于您希望解决的每个问题,您应该选择提供正确通用方法的J2EE组件,然后对其进行扩展以提供解决方案的必要详细信息。
例如,如果您希望显示一个java生成的网页,您将使用J2EE HttpServlet组件,这将确保它适合J2EE Servlet容器,该容器将处理接收HTTP请求的所有管道,将它们分解为Java对象和方法调用,将它们引导到正确的容器,通过容器从正确的处理程序收集输出,将输出组合成HTTP响应等。
答案 1 :(得分:2)
让我们以电子产品为例:所有电子设备都由组件(晶体管,电阻器,二极管,电容器......)组成 组件只是更大的一部分。组件质量差,质量高。高品质组件具有以下功能:
明确指定的接口(例如晶体管上的导线)和行为(晶体管电流/电压特性)
封装(您无需了解如何构建trasistor以使用它)
详细记录(您可以在供应商的网页上找到晶体管的文档)
可重复使用(您可以使用晶体管构建许多有趣的设备)
可更换(您可以更换一家公司生产的晶体管与其他公司相似)
在软件世界中,组件几乎可以是一切:类,JavaBean,Enterprise Java Bean,applet,portlet,JAR,Web服务器,应用程序服务器,数据库服务器,Web服务......
有关此内容的更多信息:http://en.wikipedia.org/wiki/Component-based_software_engineering
答案 2 :(得分:1)