设计模式学习笔记之简单工厂模式

所谓简单工厂模式,即提供创建对象的接口,而具体创建什么对象,由客户端决定。

比如,我们有IBird这样一个抽象类,有Chicken和Duck这两个类实现IBird。那么,如果我们想灵活的创建Chicken或IBird,那么就需要用到简单工厂模式。

SimpleFactory根据接收到的字符串,决定返回的对象。客户端用父类引用接收子类对象,不需要判别其差别,即可以得到想用的对象。

如下,是这4个类的类图:

首先定义一个IBird抽象类:

public abstract class IBird {
	public void describe(){}
}

然后定义Chicken类继承至IBird:

public class Chicken extends IBird{

	public void describe() {
		
		System.out.println("I'm a chicken.");
	}
}

定义Duck继承至IBird:

public class Duck extends IBird{

	public void describe() {
		
		System.out.println("I'm a duck.");
	}
}

然后定义一个简单工厂类:

public class SimpleFactory {

	public static  IBird getBird(String name){
		
		if(name.equals("chicken")){
			
			return new Chicken();
		}else if(name.equals("duck")){
			
			return new Duck();
		}
		
		return null;
	}
}

最后用一个类对简单工厂进行测试:

public class TestSimpleFactory {

	public static void main(String[] args){
		
		IBird bird1 = SimpleFactory.getBird("chicken");
		bird1.describe();
		
		IBird bird2 = SimpleFactory.getBird("duck");
		bird2.describe();
	}
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值