簡單工廠模式——女媧造人


1、題目:使用簡單工廠模式模擬女媧(Nvwa)造人(Person),如果傳入參數M,則返回一個Man對象,如果傳入參數W,則返回一個Woman對象,如果傳入參數R,則返回一個Robot對象。請用程序設計實現上述場景。

2、類圖:

 

 

3、代碼:

1、抽象產品類–人類:

package tutorial2;

 

public abstract class Person {

public void live() {

 

}

public void play() {

 

}

}

 

2、具體產品類–男人類:

package tutorial2;

 

public class Man extends Person {

@Override

public void live() {

System.out.println("女媧造人————男人");

        super.live();

}

public void play() {

System.out.println("男人玩耍中.....");

        super.play();

}

}

 

3、具體產品類–女人類:

package tutorial2;

 

public class Woman extends Person {

@Override

public void live() {

System.out.println("女媧造人————女人");

        super.live();

}

public void play() {

System.out.println("女人玩耍中.....");

        super.play();

}

}

 

4、具體產品類–機器人類:

package tutorial2;

 

public class Robot extends Person{

@Override

public void live() {

System.out.println("女媧造人————機器人");

        super.live();

}

public void play() {

System.out.println("機器人玩耍中.....");

        super.play();

}

}

 

 

5、工廠類–女媧類:

 

package tutorial2;

 

public class NvWa {

 

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;

}

 

}

 

6、女媧造人的測試:

package tutorial2;

 

public class NvWaMakePeople {

    public static void main(String[] args) {

        Person Person;

        Person = NvWa.getPerson("M");  //女媧造男人

        Person.live();

        Person.play();

        System.out.println("**********************");

        Person = NvWa.getPerson("W"); //女媧造女人

        Person.live();

        Person.play();

        System.out.println("**********************");

        Person = NvWa.getPerson("R"); //女媧造機器人

        Person.live();  

        Person.play();

    }

}

 4、結果

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM