软件设计实验2
实验2:简单工厂模式
[实验任务一]:女娲造人
使用简单工厂模式模拟女娲(Nvwa)造人(Person),如果传入参数M,则返回一个Man对象,如果传入参数W,则返回一个Woman对象,如果传入参数R,则返回一个Robot对象。请用程序设计实现上述场景。
源码:
1.Man.java
package test2; public class Man implements Person{ public Man() {//构造 } public void make(){ System.out.print("生产Man");//方法(生产男人) } }
2.Woman.java
package test2; public class Woman implements Person{ public Woman() {//构造 } public void make() { System.out.print("生产Woman");//方法(生产女人) } }
3.Robot.java
package test2; public class Robot implements Person{ public Robot() {//构造 } public void make(){ System.out.print("生产Robot");//方法(生产机器人) } }
4.Person.java
package test2; public interface Person {//接口 public void make();//定义公共方法 }
5.Nvwa.java
package test2; public class Nvwa { public Nvwa() {//构造 } public static Person Personjudge(String arg ) { //判断参数,再选择调用哪个类 if(arg.equalsIgnoreCase("M")) { return new Man();//新建Male对象 }else if(arg.equalsIgnoreCase("W")) { return new Woman();//新建Female对象 }else if(arg.equalsIgnoreCase("R")) { return new Robot();//新建Robot对象 }else { return null;//什么也不建 } } }
6.test.java
package test2; import java.util.Scanner; public class test { public static void main(String[] args) { // TODO Auto-generated method stub Scanner scan = new Scanner(System.in); System.out.print("请输入参数:");//输入想要生产的(男人or女人or机器) String s = scan.nextLine(); try{ Person p = Nvwa.Personjudge(s); p.make(); }catch(Exception e){ System.out.println(e.getMessage()); } scan.close(); } }