Java工厂模式
简单工厂模式
定义需要生成的实体类的接口,生产的实体类都需要实现该接口。生成对象实体的由工厂实体来承担,需要什么样的实体只需要调用工厂方法,传入具体的字符串(或者是其他的标志量),返回的就是需要的实体。具体实现看代码
定义生产的实体类需要实现的接口
public interface Inter {
void show();
}
void show();
}
需要实现该接口的类
public class Employer1 implements Inter {
public void show() {
// TODO Auto-generated method stub
System.out.println("this is employer1");
}
}
public void show() {
// TODO Auto-generated method stub
System.out.println("this is employer1");
}
}
public class Employer2 implements Inter {
public void show() {
// TODO Auto-generated method stub
System.out.println("this is employer2");
}
}
public void show() {
// TODO Auto-generated method stub
System.out.println("this is employer2");
}
}
重点的工厂类
public class Factory {
public Inter getInstance(String str) {
if (str.equals("employer1")) {
return new Employer1();
} else if (str.equals("employer2")) {
return new Employer2();
} else {
System.out.println("input error");
return null;
}
}
public Inter getInstance(String str) {
if (str.equals("employer1")) {
return new Employer1();
} else if (str.equals("employer2")) {
return new Employer2();
} else {
System.out.println("input error");
return null;
}
}
测试类
public class Test {
public static void main(String[] args) {
Inter employer1;
Inter employer2;
Factory factory = new Factory();
employer1 = factory.getInstance("employer1");
employer1.show();
employer2 = factory.getInstance("employer2");
employer2.show();
}
}
public static void main(String[] args) {
Inter employer1;
Inter employer2;
Factory factory = new Factory();
employer1 = factory.getInstance("employer1");
employer1.show();
employer2 = factory.getInstance("employer2");
employer2.show();
}
}
测试结果
this is employer1
this is employer2
this is employer2
静态工厂模式的实现是把工厂类里面产生实体的方法改为静态方法。通过类名直接去调用。