创建型设计模式 ——简单工厂模式

1 简单工厂模式

1.1 作业题目

使用简单工厂模式模拟女娲(Nvwa造人(Person),如果传入参数M则返回一个Man对象,如果传入参数W。则返回一个对象Woman,java语言实现该场景。现在需要增加一个新的Robot类,如果传入参数R,则返回一个Robot对象,对代码进行修改并注意女娲的变化。

1)绘制简单工厂模式结构视图

2)请绘制实例类图,并代码实现。

1.2  所用模式结构视图


1.3  实例类图

1.4  实例实现代码(注:代码部分可能出现Bug,应引起注意!)

package wmc09Nuva;

 

import java.util.Scanner;

 

public class Client {

 

public static void main(String[] args) {

Scanner a=new Scanner(System.in);

String s=a.nextLine();

wmc09SimpleProductFactory p=new     wmc09SimpleProductFactory();

wmc09Person n=p.NvwaCreatPerson(personType);

n.Opration();

}

}

 

public class wmc09SimpleProductFactory {

 

//简单工厂模式

    

//简单工厂类:(Nvwa

    public static Person NvwaCreatPerson(string personType)

    {

        Person person = null;

        switch (personType)

        {

            case "M":

            person = new wmc09Man();

                break;

            case "W":

                person = new wmc09Woman();

                break;

        }

 

        return person;

    }

}

 

//抽象产品:Person

public abstract class wmc09Person

{

    public wmc09Person()

    { }

 

    public abstract void Opration();

}

 

//具体产品:Woman

public class wmc09Woman : Person

{

    public wmc09Woman() { }

 

    public override void Opration()

    {

         System.out.println("女人");

    }

}

 

//具体产品:Man

public class wmc09Man : Person

{

    public wmc09Man() { }

 

    public override void Opration()

    {

        System.out.println("男人");

    }

}

}

1.5  运行结果


好的,下面是使用简单工厂模式模拟女娲造人的代码: 首先,我们需要定义一个Person接口,包含一个实现生命的方法: ```java public interface Person { void live(); } ``` 然后,我们定义MAN、Woman和Robot三个类,它们实现了Person接口: ```java public class MAN implements Person { @Override public void live() { System.out.println("I am a man, I can work hard."); } } public class Woman implements Person { @Override public void live() { System.out.println("I am a woman, I can give birth to a baby."); } } public class Robot implements Person { @Override public void live() { System.out.println("I am a robot, I can do things that human can't do."); } } ``` 接下来,我们定义一个简单工厂类,根据传入的参数来创建相应的对象: ```java public class PersonFactory { public static Person createPerson(String type) { if ("M".equals(type)) { return new MAN(); } else if ("W".equals(type)) { return new Woman(); } else if ("R".equals(type)) { return new Robot(); } else { throw new IllegalArgumentException("Invalid type: " + type); } } } ``` 最后,我们可以在客户端代码中使用工厂来创建相应的对象: ```java public class Client { public static void main(String[] args) { Person man = PersonFactory.createPerson("M"); man.live(); Person woman = PersonFactory.createPerson("W"); woman.live(); Person robot = PersonFactory.createPerson("R"); robot.live(); } } ``` 输出结果为: ``` I am a man, I can work hard. I am a woman, I can give birth to a baby. I am a robot, I can do things that human can't do. ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值