1、工厂方法模式意图:
定义一个用于创建对象的接口,让子类决定实例化哪一个类。Factory Method使一个类的实例化延迟到其子类。
2、应用场景:
考虑一个榨汁机的应用场景。榨汁机可以用来制作苹果汁、西瓜汁、橘汁等,即榨汁机可以用来制作水果汁。但是,夏天的冷饮店中,为了提高制作水果汁的效率和防止味道互串等情况,可能需要分别准备三个水果榨汁机,分别用来生产苹果汁、西瓜汁、橘汁等。
3、工厂方法模式类图:
角色:
协作:
4、适用性:
工厂方法模式跟工厂模式类似,其中工厂方法模式适合于构造同属于同一个类别的不同产品,所有的产品属于同一个系列中。
5、实例:
5.1 实例类图:
说明:店员(Waiter)使用不同的榨汁机来制作不同的水果汁,进而销售给顾客。
5.2 Waiter类:
除了用户类Waiter类之外,其他的类定义明了,故仅提供用户类。
1 public class Waiter{ 2 3 public void sell(Juicer juicer){ 4 Juice juice = juicer.MakeJuice(); //使用传入的特定的榨汁机来生产特定的水果汁 5 6 //卖给顾客,收钱 7 } 8 9 }
6、特点
原文:http://www.cnblogs.com/-crazysnail/p/3924125.html