工厂模式是设计模式中经常使用的模式之一,它共分为3类,工厂模式,简单工厂模式,抽象工厂模式,分别对以上3种设计模式进行讲述。
工厂模式:
人类接口
public interface Human {
public void getColor();
public void talk();
}
人类接口实现
public class blackHuman implements Human{
@Override
public void getColor() {
System.out.println("黑人");
}
@Override
public void talk() {
System.out.println("黑人说话");
}
}
public class whiteHuman implements Human{
@Override
public void getColor() {
System.out.println("白人");
}
@Override
public void talk() {
System.out.println("白人说话");
}
}
public class yellowHuman implements Human {
@Override
public void getColor() {
System.out.println("黄人");
}
@Override
public void talk() {
System.out.println("黄人说话");
}
}
抽象工厂
public abstract class AbstractHumanFactory {
public abstract <T extends Human> T createHuman(Class<T> c);
}
抽象工厂实现
public class HumanFactory extends AbstractHumanFactory{
Human human=null;
@Override
public <T extends Human> T createHuman(Class<T> c) {
try {
human=(T)Class.forName(c.getName()).newInstance();
} catch (InstantiationException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
return (T)human;
}
}
主要方法:
public class NvWa {
public static void main(String[] args) {
AbstractHumanFactory abstractHumanFactory = new HumanFactory();
blackHuman blackHuman = abstractHumanFactory.createHuman(blackHuman.class);
whiteHuman whiteHuman = abstractHumanFactory.createHuman(whiteHuman.class);
yellowHuman yellowHuman = abstractHumanFactory.createHuman(yellowHuman.class);
blackHuman.getColor();
blackHuman.talk();
whiteHuman.getColor();
whiteHuman.talk();
yellowHuman.getColor();
yellowHuman.talk();
}
}
简单工厂模式:
简单工厂模式本质上就是去掉抽象工厂,把工厂模式里面的生产对象方法改为静态方法。