Java语言工厂方法创立性模式介绍 - 编程入门网
法。 这样当最初的设计者所预见的实例化不能满足需要时,后来的设计人员就可以用实工厂类的factory() 方法来置换(Override))父类中factory()方法。
第二丶在经典的工厂方法模式中,factory()方法是没有参量的。在本文举例时加入了参量,这实际上也是一种变通。 第三丶在给相关的类和方法取名字时,应当注意让别人一看即知你是在使用工厂模式。 COM技术架构中的工厂方法模式 在微软(Microsoft)所提倡的COM(Component Object Model)技术架构中, 工厂方法模式起着关键的作用。 在COM架框里,Creator接口的角色是由一个叫作IClassFactory的COM接口来担任的。而实类ConcreteCreator的角色是由实现IClassFactory接口的类CFactory(见下图)来担任的。一般而言,对象的创立可能要求分配系统资源,要求在不同的对象之间进行协调等等。因为IClassFactory的引进,所有这些在对象的创立过程中出现的细节问题, 都可以封装在一个实现IClassFactory接口的实的工厂类里面。这样一来, 一个COM架构的支持系统只需要创立这个工厂类CFactory的实例就可以了。 图6. 微软(Microsoft)的COM(Component Object Model)技术架构是怎样工作的。 在上面的序列活动(Sequence Activity)图中,用户端调用COM的库函数CoCreateInstance。 CoCreateInstance在COM架框中以CoGetClassObject实现。 CoCreateInstance会在视窗系统的Registry里搜寻所要的部件(在我们的例子中即CEmployee)。如果找到了这个部件,就会加载支持此部件的DLL。当此DLL加载成功后, CoGetClassObject就会调用DllGetClassObject。后者使用new操作符将工厂类CFactory实例化。 下面,DllGetClassObject会向工厂类CFactory搜询IClassFactory接口,返还给CoCreateInstance。 CoCreateInstance接下来利用IClassFactory接口调用CreateInstance函数。此时,IClassFactory::CreateInstance调用new操作符来创立所要的部件(CEmployee)。此外,它搜询IEmployee接口。在拿到接口的指针后, CoCreateInstance释放掉工厂类并把接口的指针返还给客户端。 客户端现在就可以利用这个接口调用此部件中的方法了。 Java语言工厂方法创立性模式介绍(6)时间:2010-12-17EJB技术架构中的工厂方法模式 升阳(Sun Microsystem)倡导的EJB(Enterprise Java Beans)技术架构是一套为Java语言设计的, 用来开发企业规模应用程序的组件模型。我们来举例看一看EJB架构是怎样利用工厂方法模式的。请考察下面的序列活动图。 图7. 在升阳所提倡的EJB技术架构中, 工厂方法模式也起着关键的作用 在上面的图中,用户端创立一个新的 Context 对象,以便利用 JNDI 伺服器寻找 EJBObject。在得到这个 Context 对象后,就可以使用 JNDI 名, 比如"Employee", 来拿到 EJB 类 Employee 的 Home 接口。使用 Employee 的 Home 接口,客户端可以创立 EJB 对象,比如 EJB 类 Employee 的实例 emp, 然后调用 Employee 的各个方法。
代码清单7. EJB架构中,Home接口提供工厂方法以便用户端可以动态地创立EJB类Employee的实例。 JMS技术架构中的工厂方法模式 JMS定义了一套标准的API,让Java语言程序能通过支持JMS标准的MOM(Message Oriented Middleware 面向消息的中间伺服器)来创立和交换消息(message)。我们来举例看一看JMS(Java Messaging Service |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |