zoukankan      html  css  js  c++  java
  • 建造者模式

    模式UML

     

    【模式代码(JAVA语言实现)】

    //服务员

     

    //食物套餐

     

    //生产套餐抽象类

     

    //套餐A

     

    //套餐B

     

    //客户端

    public class Client
    {
    public static void main(String args[])
    {
    //动态确定套餐种类
    MealBuilder mb=(MealBuilder)XMLUtil.getBean();
    //服务员是指挥者
    KFCWaiter waiter=new KFCWaiter();
    //服务员准备套餐
    waiter.setMealBuilder(mb);
    //客户获得套餐
    Meal meal=waiter.construct();

    System.out.println("套餐组成:");
    System.out.println(meal.getFood());
    System.out.println(meal.getDrink());
    }
    }

     //提取配置文件

    import javax.xml.parsers.*;
    import org.w3c.dom.*;
    import org.xml.sax.SAXException;
    import java.io.*;
    public class XMLUtil
    {
    //该方法用于从XML配置文件中提取具体类类名,并返回一个实例对象
    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();

    //通过类名生成实例对象并将其返回
    Class c=Class.forName(cName);
    Object obj=c.newInstance();
    return obj;
    }
    catch(Exception e)
    {
    e.printStackTrace();
    return null;
    }
    }
    }

    //配置文件config

    <?xml version="1.0"?>
    <config>
    <className>SubMealBuilderB</className>
    </config>

  • 相关阅读:
    inetinfo
    常用的IIS命令
    asp.net
    WAS与w3svc
    服务和进程的关系
    w3svc
    link
    RAC动态资源(DRM)管理介绍
    RMAN内部原理介绍
    在32位的linux平台上为Oracle配置>1.7GB的SGA
  • 原文地址:https://www.cnblogs.com/ljs-666/p/8678248.html
Copyright © 2011-2022 走看看