1.工厂模式
工厂模式的意思就是,我们想要产生什么类的对象,我直接丢给工程类,让工厂统一给我们创建,而不是直接来创建。
2.代码
统一的接口,也就是说,能够被工厂类产生对象的类,必须实现统一的接口。
public interface Fruits {
public void generate();
}
能够被工厂产生对象的类,这些类都实现了上面的接口
package com.example.DesignPattern.FactoryPattern;
public class Apple implements Fruits{
@Override
public void generate() {
System.out.println("生成苹果了");
}
}
package com.example.DesignPattern.FactoryPattern;
public class Pear implements Fruits {
@Override
public void generate() {
System.out.println("生成梨了");
}
}
工厂类,用来产生对应的对象的
package com.example.DesignPattern.FactoryPattern;
public class Factory {
public static Fruits createNewInstance(String className)
{
Fruits fruits = null;
try {
fruits = (Fruits) Class.forName(className).newInstance();
} catch (InstantiationException | IllegalAccessException | ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
if(fruits == null)
{
throw new NullPointerException();
}
return fruits;
}
}
测试类
package com.example.DesignPattern.FactoryPattern;
public class Test {
public static void main(String[] args) {
Apple apple = (Apple) Factory.createNewInstance(Apple.class.getName());
Pear pear = (Pear) Factory.createNewInstance(Pear.class.getName());
}
}