【正文】
這個核心類僅僅負責給出具體工廠必須實現(xiàn)的接口,而不負責產(chǎn)品類被實例化這種細節(jié),這使得工廠方法模式可以允許系統(tǒng)在不修改工廠角色的情況下引進新產(chǎn)品。一般來說,工廠對象應當有一個抽象的父類型,如果工廠等級結(jié)構(gòu)中只有一個具體工廠類的話,抽象工廠就可以省略,也將發(fā)生了退化。user=sa。 工廠方法模式 ?模式應用 ?(1) iterator()方法: I tera torColl ect ion+ itera tor ()...: I tera torList+++itera tor ()listI tera tor ()listI tera tor (int ind ex )...: I tera tor: L istI tera tor: L istI tera torList I tera torLin ked List+ listI tera tor (int ind ex )...: L istI tera torList I trA bst ract List+++I tera tor ()listI tera tor ()listI tera tor (int ind ex )...: I tera tor: L istI tera tor: L istI tera torA bst ract Se qu en tialL ist++I tera tor ()listI tera tor (int ind ex )...: I tera tor: L istI tera tor工廠方法模式 ?模式應用 ?(2) Java消息服務 JMS(Java Messaging Service) : //使用上下文和 JNDI得到連接工廠的引用, ctx是上下文 Context類型的對象 QueueConnectionFactory qConnFact=(QueueConnectionFactory)(cfJndi)。工廠方法模式之所以又被稱為多態(tài)工廠模式,是因為所有的具體工廠類都具有同一抽象父類。 工廠方法模式 ?模式實例與解析 ?實例一:電視機工廠 cr e a t e cr e a t e ......r e t u r n n e w H a i e r T V ( ) 。 Object obj=()。 工廠方法模式 ? 模式分析 ? 工具類 XMLUtil代碼片段: //創(chuàng)建 DOM文檔對象 DocumentBuilderFactory dFactory = ()。 payMethod =()。而簡單工廠模式在添加新產(chǎn)品對象后不得不修改工廠方法,擴展性不好。 工廠方法模式 ?模式動機 ? 使用工廠方法模式設計的按鈕工廠 工廠方法模式 ?模式定義 ?工廠方法模式 (Factory Method Pattern)又稱為工廠模式 , 也叫 虛擬構(gòu)造器 (Virtual Constructor)模式 或者 多態(tài)工廠 (Polymorphic Factory)模式 , 它屬于類創(chuàng)建型模式 。第 5章 工廠方法模式 劉 偉 本章教學內(nèi)容 ?工廠方法模式 ? 模式動機與定義 ? 模式結(jié)構(gòu)與分析 ? 模式實例與解析 ? 模式效果與應用 ? 模式擴展 工廠方法模式 ? 簡單工廠模式的不足 ?在簡單工廠模式中,只提供了一個工廠類,該工廠類處于對產(chǎn)品類進行實例化的中心位置,它知道每一個產(chǎn)品對象的創(chuàng)建細節(jié),并決定何時實例化哪一個產(chǎn)品類。 在工廠方法模式中 , 工廠父類負責定義創(chuàng)建產(chǎn)品對象的公共接口 , 而工廠子類則負責生成具體的產(chǎn)品對象 , 這樣做的目的是將產(chǎn)品類的實例化操作