设计模式之二:简单工厂模式

简单工厂模式又称静态工厂方法模式(Static Factory Method Pattern),属于创建模式中的一种。简单地理解,就是有一个类负责对象的创建,类就是一个工厂,你需要的产品就是对象,你可以通过工厂提供的接口获得产品,即对象。

我们以一个动物园的例子来理解。动物园有很多动物,各种动物有不同的叫声,把动物园比喻成一个工厂,各种动物是对象,我们首先定义一个动物的接口,让其他的动物实例都实现它。下面是接口:

public interface Animal {
	public void speak();
}
动物实例,比如Dog类:

public class Dog implements Animal{
	public void speak() {
		System.out.println("我是小狗,我会汪汪叫");
	}
}

Sheep类:

public class Sheep implements Animal{
	public void speak() {
		System.out.println("我是绵羊,我会咩咩叫");
	}
}

接下来我们要实现名为ZooFactory的工厂类:

public class ZooFactory {
	public static Animal getAnimal(String animal) {
		if("Dog".equals(animal)) {
			return new Dog();
		}
		if("Cat".equals(animal)) {
			return new Sheep();
		}
		return null;
	}
}

在接下来的程序设计中,如果我们需要得到Dog类的实例或者Sheep的实例,我们可以通过工厂类的静态方法getAnimal(String animal)类获得。比如:

ZooFactory.getAnimal("Dog").speak();
ZooFactory.getAnimal("Cat").speak();

简单工厂模式的优点是实现客户端与服务端的分离,增加新产品的时候不需要修改客户端。缺点是当需要增加新产品的时候,需要修改工程类。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值