lundi 14 septembre 2015

Correct Implementation of a Factory Method

I am trying to understand the theory of what a factory pattern is, am I implementing it correctly here? if not what is wrong if correct what should I change?

Interface

public interface Person {
    public void setName(String name);
    public String getName();
    public void setAge(String age);
    public String getAge();
    public void setGender(String gender);
    public String getGender();
}

Male Object

public class Male implements Person
{
    public String name;
    public String age;
    public String gender;
    @Override
    public void setName(String name) {
        this.name = name;
    }

    @Override
    public String getName() {
        return null;
    }

    @Override
    public void setAge(String age) {
        this.age = age;
    }

    @Override
    public String getAge() {
        return null;
    }

    @Override
    public void setGender(String gender) {
        this.gender = gender;
    }

    @Override
    public String getGender() {
        return null;
    }
}

Female Object

public class Male implements Person
{
    public String name;
    public String age;
    public String gender;
    @Override
    public void setName(String name) {
        this.name = name;
    }

    @Override
    public String getName() {
        return null;
    }

    @Override
    public void setAge(String age) {
        this.age = age;
    }

    @Override
    public String getAge() {
        return null;
    }

    @Override
    public void setGender(String gender) {
        this.gender = gender;
    }

    @Override
    public String getGender() {
        return null;
    }
}

Object Factory

public class PersonFactory {

    public Person getPerson(String type) {
        if(type == "MALE") {
            return new Male();
        }
        else {
            return new Female();
        }
    }
    public Person getMale() {
        return new Male();
    }
    public Person getFemale() {
        return new Female();
    }
}

Main Method

public class main {
    public static void main(String[] args) {
        PersonFactory pf = new PersonFactory();
        Person adam = pf.getPerson("MALE");
    }
}

Aucun commentaire:

Enregistrer un commentaire