设计模式之二:简单工厂模式
2012-11-02 23:52
169 查看
简单工厂模式又称静态工厂方法模式(Static Factory Method Pattern),属于创建模式中的一种。简单地理解,就是有一个类负责对象的创建,类就是一个工厂,你需要的产品就是对象,你可以通过工厂提供的接口获得产品,即对象。
我们以一个动物园的例子来理解。动物园有很多动物,各种动物有不同的叫声,把动物园比喻成一个工厂,各种动物是对象,我们首先定义一个动物的接口,让其他的动物实例都实现它。下面是接口:
Sheep类:
接下来我们要实现名为ZooFactory的工厂类:
在接下来的程序设计中,如果我们需要得到Dog类的实例或者Sheep的实例,我们可以通过工厂类的静态方法getAnimal(String animal)类获得。比如:
简单工厂模式的优点是实现客户端与服务端的分离,增加新产品的时候不需要修改客户端。缺点是当需要增加新产品的时候,需要修改工程类。
我们以一个动物园的例子来理解。动物园有很多动物,各种动物有不同的叫声,把动物园比喻成一个工厂,各种动物是对象,我们首先定义一个动物的接口,让其他的动物实例都实现它。下面是接口:
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();
简单工厂模式的优点是实现客户端与服务端的分离,增加新产品的时候不需要修改客户端。缺点是当需要增加新产品的时候,需要修改工程类。
相关文章推荐
- 设计模式之二(简单工厂模式)
- C++设计模式——简单工厂模式
- 设计模式之二:简单工厂模式—集中式工厂的实现
- java设计模式之简单工厂模式
- 设计模式之简单工厂模式(使用C++)
- js原生设计模式——3简单工厂模式\简单工厂模式封装简单对象
- 设计模式---------------简单工厂模式
- 【自分の総括】设计模式之简单工厂模式(实例分析)
- 设计模式初探——简单工厂模式
- 设计模式—简单工厂模式
- 学习设计模式之二:抽象工厂模式(Abstract Factory)
- 设计模式之简单工厂模式
- 设计模式-简单工厂模式
- 使用简单工厂模式来进行Python的设计模式编程
- 设计模式之-简单工厂模式
- 一个都不能少之设计模式1简单工厂模式
- 常见的设计模式(二)——简单工厂模式
- Java 设计模式之简单工厂模式的详解(创建模式)
- 设计模式学习之简单工厂模式
- 设计模式之二 --- Singleton 模式