通过工厂模式和配置文件方式结合模拟框架的配置
来源:互联网 发布:vss软件保护 编辑:程序博客网 时间:2024/05/22 06:11
本实例的结构图如下:
我们一般开发遵循面向对象的五大基本原则(新手可以自行百度),其中一项为开闭原则,既增加功能的时候
尽量不要改变原来程序的代码,这点容易实现,使用配置文件进行读取无疑是较优的方式,然后通过反射技术
进行类的实例化。
代码架构如下:
代码如下:
<?xml version="1.0"?><config> <className>com.company.BenzFactory</className></config>package com.company;/** * Created by Dqd on 2017/4/15. */public interface CarFactory { Car productCar();}public class BMWFactory implements CarFactory{ @Override public Car productCar() { return new BMW(); }}public class BenzFactory implements CarFactory{ @Override public Car productCar() { return new Benz(); }}public interface Car { void run();}public class Benz implements Car { @Override public void run() { System.out.println("Benz 开车了"); }}public class BMW implements Car { @Override public void run() { System.out.println("BMW 开车了"); }}/** * Created by Dqd on 2017/4/15. */public class GetCar { static CarFactory carFactory; static Car car; public static void main(String[] args){ carFactory = (CarFactory) XMLUtil.getBean(); car = (Car) carFactory.productCar(); car.run(); }}import org.w3c.dom.Document;import org.w3c.dom.Node;import org.w3c.dom.NodeList;import org.xml.sax.SAXException;import javax.xml.parsers.DocumentBuilder;import javax.xml.parsers.DocumentBuilderFactory;import javax.xml.parsers.ParserConfigurationException;import java.io.File;import java.io.IOException;/** * Created by Dqd on 2017/4/15. */public class XMLUtil { public static Object getBean(){ try { DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance(); DocumentBuilder documentBuilder = documentBuilderFactory.newDocumentBuilder(); Document document; document = documentBuilder.parse(new File("source/car.xml")); //获取类名的文本节点 NodeList nodeList = document.getElementsByTagName("className"); Node node = nodeList.item(0).getFirstChild(); String strname = node.getNodeValue(); Class c = Class.forName(strname); Object object = c.newInstance(); return object; } catch (Exception e) { e.printStackTrace(); return null; } }}
参考:http://blog.csdn.net/lovelion/article/details/7430414
0 0
- 通过工厂模式和配置文件方式结合模拟框架的配置
- 设计模式和工厂模式的结合
- 反射机制与配置文件结合的工厂设计模式
- 浅论工厂方法模式和代理模式的结合
- 构建者模式和抽象工厂模式的结合使用
- Java结合反射和单例的工厂模式
- C++工厂类和单例模式的结合使用
- java 工厂模式和内部类的完美结合
- 单体模式和工厂模式结合使用
- 通过配置文件方式配置数据库的隔离级别
- java 反射和 工厂模式结合使用
- 工厂模式---模拟Spring的Bean工厂
- 通过实例理解Spring的Bean工厂和AOP框架
- Spring使用工厂模式配置bean的三种方式
- 简单工厂(可配置的工厂类)和工厂方法模式以及抽象工厂
- 使用配置文件配置工厂生产(工厂模式-base)
- 简单工厂与策略模式的结合
- 反射结合工厂设计模式的使用
- WebJars——web端静态资源的jar包
- Android——requestWindowFeature()的应用
- 170414 PY中显示JS
- MySQL之GTID主从同步
- 1090. Highest Price in Supply Chain (25)
- 通过工厂模式和配置文件方式结合模拟框架的配置
- http的简介
- JSP原理图
- (ssl2291)分组背包
- springMVC转发与重定向
- C# Winform 窗体美化(六、双层窗体)
- 插入排序——直接插入排序
- MySql备份实战
- 前端进阶------实例对象,构造函数,以及原型之间的关系