1.工廠模式
??工廠模式的意思就是向挖,我們想要產(chǎn)生什么類的對(duì)象蚕甥,我直接丟給工程類哪替,讓工廠統(tǒng)一給我們創(chuàng)建,而不是直接來創(chuàng)建菇怀。
2.代碼
??統(tǒng)一的接口凭舶,也就是說,能夠被工廠類產(chǎn)生對(duì)象的類爱沟,必須實(shí)現(xiàn)統(tǒng)一的接口帅霜。
public interface Fruits {
public void generate();
}
??能夠被工廠產(chǎn)生對(duì)象的類,這些類都實(shí)現(xiàn)了上面的接口
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("生成梨了");
}
}
??工廠類呼伸,用來產(chǎn)生對(duì)應(yīng)的對(duì)象的
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;
}
}
?? 測(cè)試類
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());
}
}