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

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

比如,我们有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();
	}
}

 

你可能感兴趣的:(设计模式学习笔记之简单工厂模式)