public interface Animal {
void run(String name);
}
public class CatRobot implements Animal{
private static CatRobot cat=new CatRobot();
private CatRobot(){
}
public static CatRobot instance(){
if(cat==null){
cat=new CatRobot();
}
return cat;
}
@Override
public void run(String name) {
System.out.println("我是机器Cat"+name);
}
}
public class DogRobot implements Animal{
private static DogRobot dog=new DogRobot();
private DogRobot(){
}
public static DogRobot instance(){
if(dog==null){
dog=new DogRobot();
}
return dog;
}
@Override
public void run(String name) {
System.out.println("我是机器Dog"+name);
}
}
public class AnimalRobot {
private static Animal ani;
private AnimalRobot() {
}
public static Animal instance(String name){
if(name.equals("cat")){
ani=CatRobot.instance();
}else if(name.equals("dog")){
ani=DogRobot.instance();
}else{
ani=null;
}
return ani;
}
}
public class PersonRobot {
private static PersonRobot person;
private PersonRobot(){
}
public static PersonRobot instance(){
if(person==null){
person=new PersonRobot();
}
return person;
}
public void runRobot(String name){
System.out.println("我是玩家"+name);
}
}
public class Robot {
public void Manufacture(String args){
if(args.equals("persion")){
PersonRobot.instance().runRobot(args);
}else{
AnimalRobot.instance(args).run(args);
}
}
}
public class Test {
public static void main(String[] args) {
Robot robot=new Robot();
robot.Manufacture("persion");
}
}