2024.12.1

 

public class Main

{

    public static void main(String[] args)

    {

        ComputerBuilder cb = (ComputerBuilder) XMLUtil.getBean();

 

        Director director = new Director();

 

        director.setComputerBuilder(cb);

 

        Computer computer = director.construct();

 

        System.out.println("电脑组装");

        System.out.println(computer.getCpu());

        System.out.println(computer.getMemory());

        System.out.println(computer.getHardDisk());

        System.out.println(computer.getHost());

    }

}

 

public class Computer

{

    private String cpu;

    private String memory;

    private String hardDisk;

    private String host;

 

    public String getCpu()

    {

        return cpu;

    }

 

    public void setCpu(String cpu)

    {

        this.cpu = cpu;

    }

 

    public String getMemory()

    {

        return memory;

    }

 

    public void setMemory(String memory)

    {

        this.memory = memory;

    }

 

    public String getHardDisk()

    {

        return hardDisk;

    }

 

    public void setHardDisk(String hardDisk)

    {

        this.hardDisk = hardDisk;

    }

 

    public String getHost()

    {

        return host;

    }

 

    public void setHost(String host)

    {

        this.host = host;

    }

}

 

 

public abstract class ComputerBuilder

{

   protected Computer computer=new Computer();

 

   public abstract void buildCpu();

   public abstract void buildMemory();

   public abstract void buildHardDisk();

   public abstract void buildHost();

 

   public Computer getComputer()

   {

       return computer;

   }

}

 

 

public class DesktopBuilder extends ComputerBuilder

{

 

    @Override

    public void buildCpu()

    {

        computer.setCpu("台式机装了一个Cpu");

    }

 

    @Override

    public void buildMemory()

    {

        computer.setMemory("台式机装了一个内存");

    }

 

    @Override

    public void buildHardDisk()

    {

        computer.setHardDisk("台式机装了一个硬盘");

    }

 

    @Override

    public void buildHost()

    {

        computer.setHost("台式机装了一个主机");

    }

}

 

public class Director

{

    private ComputerBuilder cb;

 

    public void setComputerBuilder(ComputerBuilder cb)

    {

        this.cb = cb;

    }

 

    public Computer construct()

    {

        cb.buildCpu();

        cb.buildMemory();

        cb.buildHardDisk();

        cb.buildHost();

 

        return cb.getComputer();

    }

}

 

public class LaptopBuilder extends ComputerBuilder

{

 

    @Override

    public void buildCpu()

    {

        computer.setCpu("笔记本装了一个Cpu");

    }

 

    @Override

    public void buildMemory()

    {

        computer.setMemory("笔记本装了一个内存");

    }

 

    @Override

    public void buildHardDisk()

    {

        computer.setHardDisk("笔记本装了一个硬盘");

    }

 

    @Override

    public void buildHost()

    {

        computer.setHost("笔记本装了一个主机");

    }

}

 

 

public class XMLUtil

{

    public static Object getBean()

    {

        try

        {

            DocumentBuilderFactory dFactory = DocumentBuilderFactory.newInstance();

            DocumentBuilder builder = dFactory.newDocumentBuilder();

            Document doc = builder.parse(new File("src/main/resources/config1.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;

        }

    }

}

posted @ 2024-12-01 09:21  kuku睡  阅读(10)  评论(0)    收藏  举报