【Java】Java语言实现23种设计模式之工厂设计模式

14 篇文章 0 订阅
7 篇文章 0 订阅

工厂设计模式是程序员将传统工厂生产产品的模式(流程)抽象到程序设计的产物。
那我们首先就应该来看一下工厂生产的大概流程。

Created with Raphaël 2.2.0 原料 工厂 产品

也就是说,我们不需要关心工厂用了什么手段把原料生产成了产品,只需要知道,我投原料进去,我就能得到相应的产品。
映射到程序设计中,就是说,我给程序一个必要的参数,程序就能给我输出一个既定的对象。
比如说,我输入一个名字,程序就能生产出一个对应的人。这个人有自己的功能。

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();
	}
}

暂时到此。
挚谢阅读。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值