`
llxwxj
  • 浏览: 8314 次
  • 性别: Icon_minigender_1
  • 来自: 山西
社区版块
存档分类
最新评论

java设计模式之一:简单工厂模式

阅读更多

      从设计模型的类型来讲,简单的工厂模式属于创建型模式,又叫静态工厂方法模式,简单的工厂模式是由一个工厂对象决定创建出哪一种产品类的实例。

      简单工厂模式的实质是由工厂类根据传入的参数,动态决定应该创建哪种产品类(这些产品类继承自一个父类或实现一个接口)的实例。

工厂( Creator )角色

    简单工厂模式的核心,它负责实现创建所有实例的内部逻辑。工厂类可以被外界直接调用,创建所需的产品对象。   

抽象产品( Product )角色   

      简单工厂模式所创建的所有对象的父类,它负责描述所有实例所共有的公共接口。   

具体产品( Concrete Product )角色   

      是简单工厂模式的创建目标,所有创建的对象都是充当这个角色的某个具体类的实例。

举例说明:

 

public interface Animal {
	public void makeSound();
}
public class Cat implements Animal{
	@Override
	public void makeSound() {
		System.out.println("喵喵...");
	}
}
public class Dog implements Animal{
	@Override
	public void makeSound() {
		System.out.println("汪汪...");
	}
}
public class AnimalFactory {
	public static Animal createAnimal(String animal) {
		if (animal.equals("猫")) {
			return new Cat();
		} else if (animal.equals("狗")) {
			return new Dog();
		}else {
			return null;
		}
	}
}
public class AnimalSound {
	public static void main(String[] args) {
		Animal animal=AnimalFactory.createAnimal("狗");
		animal.makeSound();
	}
}
public class AnimalSound {
	public static void main(String[] args) {
		Animal animal=AnimalFactory.createAnimal("猫");
		animal.makeSound();
	}
}

 传入不同的参数,将调用不同的产品类执行相应的方法。

优点:调用者可以不必考虑如何创建对象,而只通过传入参数进行调用就可以了。

缺点:如果要增加产品,只能改变工厂。如果产品类经常增加,那么,对于具体产品类型和条件参数的判断会很多,对系统的扩展和维护非常不利。

应用:因为它的优缺点,所以,工厂类负责创建的对象比较少,客户只知道传入工厂类的参数,对于如何创建对象(逻辑)不关心的情况;

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics