简单工厂模式
[实验任务一]:女娲造人
使用简单工厂模式模拟女娲(Nvwa)造人(Person),如果传入参数M,则返回一个Man对象,如果传入参数W,则返回一个Woman对象,如果传入参数R,则返回一个Robot对象。请用程序设计实现上述场景。
实验要求:
1. 画出对应的类图;
2. 提交源代码;
package SimpleFactoryPattern;
/**
* 抽象产品类--造人类
* @author gong
*
*/
public abstract class Person {
public void run(){}
public void eat(){}
}
具体产品类–男人类:
package SimpleFactoryPattern;
/**
* 具体产品类--男人类
* @author gong
public class Man extends Person{
@Override
public void eat() {
System.out.println("男人吃东西..");
super.eat();
}
@Override
public void run() {
System.out.println("男人跑步..");
super.run();
}
}
具体产品类–女人类:
package SimpleFactoryPattern;
/**
* 具体产品类--女人类
* @author gong
*
*/
public class Woman extends Person{
@Override
public void eat() {
System.out.println("女人吃东西..");
super.eat();
}
@Override
public void run() {
System.out.println("女 人跑步..");
super.run();
}
}
具体产品类–机器人类:
package SimpleFactoryPattern;
/**
* 具体产品类--机器人类
* @author gong
*
*/
public class Robot extends Person{
@Override
public void eat() {
System.out.println("机器人吃东西..");
super.eat();
}
@Override
public void run() {
System.out.println("机器人跑步..");
super.run();
}
}
工厂类–女娲类:
package SimpleFactoryPattern;
/**
* 工厂类--女娲类
* @author gong
*
*/
public class{
public static Person getPerson(String people){
Person person=null;
if(people.equalsIgnoreCase("M")){
Person = new Man();
}else if(people.equalsIgnoreCase("W")){
Person = new Woman();
}else if(people.equalsIgnoreCase("R")){
Person = new Robot();
}
return Person;
}
}
女娲造人的测试:
package SimpleFactoryPattern;
/**
* 女娲造人的测试
* @author gong
*
*/
public class NvwaMakePerson {
public static void main(String[] args) {
Person person;
person = Nvwa.getPerson("M"); //女娲造男人
person.eat();
person = Nvwa.getPerson("W"); //女娲造女人
person.eat();
person = Nvwa.getPerson("R"); //女娲造机器人
person.eat();
}
}
3.注意编程规范。