Java模式之工厂模式

首先提出问题--什么是模式?为什么要使用模式?

设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。

(来自百度百科)

在Java中有着许多模式——工厂模式、观察者模式、代理模式、单例模式等。这篇我们来学习工厂模式,

工厂模式是Java开发中常见的一种模式。

先看下面一段代码:

//定义接口
public interface Lanauage{
	public void say();
}

//定义类Chinese
public class Chiness{
	public void say(){
		System.out.println("说的是汉语");
	}
}

//定义类English
public class English{
	public void say(){
	 System.out.println("说的是英语");
	}
}

public class LanauageTest{
	public static void main(String args[]){
		Lanauage l = new Chiness();//①实例化接口
		l.say();
	}
}
注意①显示的代码行,一个接口类和我们固定子类绑在了一起。这意味着我们代码的耦合会有问题,不利于我们后面的维护,解决的方式就是中间加“第三者”——A-->B-->C模式。改变C、B但是A不需要改变。

修改代码如下:

//定义接口
public interface Lanauage{
	public void say();
}

//定义类Chinese
public class Chiness{
	public void say(){
		System.out.println("说的是汉语");
	}
}

//定义类English
public class English{
	public void say(){
	 System.out.println("说的是英语");
	}
}

//增加工厂LanauageFactory
public class LanauageFactory{
	public static Lanauage getInstance(String className){
		if("chiness".equals(className)){
			return new Chiness();
		}else if("english".equals(className)){
			return new English();
		}
		return null;
	}
}

public class LanauageTest{
	public static void main(String args[]){
		Lanauage l = LanauageFactory.getInstance("chiness");//①
		l.say();
	}
}

此时观测①行代码,我们发现主类不再与具体子类耦合在一起,方便了以后增加新的子类。若要增加子类,修改LanauageFactory类即可。


总结:用一个单独的类来实现新建实例的过程,这个类就是工厂。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值