package org.example; public class Main { public static void main(String[] args) { Person man = NvwaFactory.createPerson("M"); man.display(); Person woman = NvwaFactory.createPerson("W"); woman.display(); Person robot = NvwaFactory.createPerson("R"); robot.display(); } }
package org.example; public class Man implements Person { @Override public void display() { System.out.println("这是男人"); } }
package org.example; public class NvwaFactory { 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("Unsupported type: " + type); } } }
package org.example; public interface Person { void display(); }
package org.example; public class Robot implements Person { @Override public void display() { System.out.println("这是机器人"); } }
package org.example; public class Woman implements Person { @Override public void display() { System.out.println("这是女人"); } }