工厂方法模式
来源:互联网 发布:钢琴淘宝 编辑:程序博客网 时间:2024/04/30 03:13
继承简单工厂模式的优点,有弥补了他的缺点
暂时附上代码,以后慢慢完善
1.抽象产品类TV(电视机类)
package com.th.designedmodem;public interface TV {public void play();}
2.具体产品类HaierTV(海尔电视机类)
package com.th.designedmodem;public class HaierTV implements TV {@Overridepublic void play() {System.out.println("海尔电视机播放中。。。");}}3.具体产品类HisenseTV(海信电视机类)
package com.th.designedmodem;public class HisenseTV implements TV {@Overridepublic void play() {System.out.println("海信电视机播放中。。。。");}}
4.抽象工厂类TVFactory(电视机工厂类)
package com.th.designedmodem;public interface TVFactory {public TV produceTV();}
package com.th.designedmodem;public class HaierTVFactory implements TVFactory {@Overridepublic TV produceTV() {System.out.println("海尔电视机工厂生产海尔电视机。。。。");return new HaierTV();}}
package com.th.designedmodem;public class HisenseTVFactory implements TVFactory {@Overridepublic TV produceTV() {System.out.println("海信电视机工厂生产海信电视机。。。。");return new HisenseTV();}}
package com.th.designedmodem;import javax.xml.parsers.*;import org.w3c.dom.*;import java.io.*;public class XMLUtil {public static Object getBean(){try{DocumentBuilderFactory dFactory = DocumentBuilderFactory.newInstance();DocumentBuilder builder = dFactory.newDocumentBuilder();Document doc;doc = builder.parse(new File("config.xml"));NodeList nl = doc.getElementsByTagName("className");Node classNode = nl.item(0).getFirstChild();String cName = classNode.getNodeValue().trim();Class c = Class.forName(cName);Object obj = c.newInstance();return obj;}catch (Exception e){e.printStackTrace();return null;}}}
package com.th.designedmodem;public class Client {public static void main(String[] args) {try{TV tv;TVFactory factory;factory = (TVFactory) XMLUtil.getBean();tv = factory.produceTV();tv.play();}catch (Exception e){System.out.println(e.getMessage());System.out.println("heheda");}}}
<?xml version="1.0" ?><config><className>com.th.designedmodem.HaierTVFactory</className></config>
0 0
- 工厂模式 -- 工厂方法
- 工厂模式-工厂方法
- 工厂模式-工厂方法
- 工厂 > 工厂方法模式
- 工厂模式-工厂方法模式
- 工厂模式-工厂方法模式
- 工厂模式---工厂方法模式
- 【模式】工厂方法模式
- 工厂方法,抽象工厂模式
- C#工厂模式-工厂方法
- 工厂模式 和工厂方法
- 工厂模式-C-工厂方法
- 工厂模式以及工厂方法
- 简单工厂、工厂方法、抽象工厂模式
- 简单工厂、工厂方法、抽象工厂模式
- 工厂模式(简单工厂、工厂方法)
- 简单工厂|工厂方法|抽象工厂模式
- 设计模式-工厂模式(简单工厂模式+工厂方法模式)
- R语言时间处理
- 总结一下Hibernate Helloworld
- vs2015 卸载
- 数学中几种常用的距离
- 自主学习之RxSwift(一) -----Driver
- 工厂方法模式
- iOS开发中清理沙盒目录的缓存
- 多字文本android:ellipsize属性不正常工作的解决办法
- 结构体,联合和枚举
- Android6.0的处理 转载
- sizeof的用法
- 【Android进阶】文本切换器(TextSwitcher)的功能与用法(自动切换仿京东淘宝快报效果)
- 【LeetCode】104. Maximum Depth of Binary Tree
- Unity新项目如何快速理清顶层代码结构