工厂设计模式是程序员将传统工厂生产产品的模式(流程)抽象到程序设计的产物。
那我们首先就应该来看一下工厂生产的大概流程。
也就是说,我们不需要关心工厂用了什么手段把原料生产成了产品,只需要知道,我投原料进去,我就能得到相应的产品。
映射到程序设计中,就是说,我给程序一个必要的参数,程序就能给我输出一个既定的对象。
比如说,我输入一个名字,程序就能生产出一个对应的人。这个人有自己的功能。
Talk is Cheap , Show Me the Code
public class Test{
public static void main (String args[]) {
People people = null; //定义接口对象
people = Factory.getInstance("JayZhou");//让people去JayZhou生产线,生产出来一个新的JayZhou
people.say();//让这个新的JayZhou跟大家打个招呼
}
}
至于它怎么生产出来的,我不管。
以上是工厂设计模式的原理。
下面给大家一个工厂设计模式的Java范例。也是一个最基本的框架
package test;
/**
* @version v1.0
* @author liujc@novastar.tech
* @className Test
* @packageName test
*/
//定义一个人的接口
interface People {
//人会说话
public void say();
}
//定义工厂里面的“生产线”,生产一个会说话的JayZhou
class JayZhou implements People {
//JayZhou的技能
public void say() {
System.out.println("哎哟!不错哦!");
}
}
//定义工厂里面的“生产线”,生产一个会说话的JustnBieber
class JustinBieber implements People {
//会说o~Baby!
public void say() {
System.out.println("o~Baby!");
}
}
//定义工厂类
class Factory {
//判断需要哪个生产线工作
public static People getInstance(String className) {
People people = null;
if("JayZhou".equals(className)) {
people = new JayZhou();
}else if("JustinBieber".equals(className)){
people = new JustinBieber();
}
//返回产品
return people;
}
}
public class Test{
public static void main (String args[]) {
People people = null; //定义接口对象
people = Factory.getInstance("JayZhou");//让people去JayZhou生产线,生产出来一个新的JayZhou
people.say();//让这个新的JayZhou跟大家打个招呼
}
}
针对如上程序,如果说 想要更简单,连上面的 public class Test 里面的内容都不想敲。那么…兄弟你是真的懒。
不过程序员就是learn more , type less.
把main改为
public static void main (String args[]) {
People people = null;
people = Factory.getInstance(args[0]);
if(people != null){
people.say();
}
}
暂时到此。
挚谢阅读。