简单工厂模式是类的创建模式,又叫做静态工厂方法(Static Factory Method)模式。简单工厂模式是由一个工厂对象决定创建出哪一种产品类的实例。
简单工厂模式的结构:
工厂类(Creator)角色:担任这个角色的是工厂方法模式的核心,含有与应用紧密相关的商业逻辑。工厂类在客户端的直接调用下创建产品对象,它往往由一个具体的java类实现。
抽象产品(Product)角色:担任这个角色的类是由工厂方法模式所创建的对象的父类,或它们共同拥有的接口。抽象产品角色可以用一个java接口或者java抽象类实现。
具体产品(Concrete Product)角色:工厂方法模式所创建的任何对象都是这个角色的实例,具体产品由一个具体java类实现。
例如:
有一个农场公司,专门向市场销售各类水果。在这个系统里需要描述下列的水果:
葡萄 Grape
草莓 Strawberry
苹果 Apple
水果与其他的植物有很大的不同,水果最终是可以采摘食用的。那么一个自然地做法就是建立一个各种水果都使用的接口,以便与农场里的其他植物区分开,如下图所示。
水果接口规定出所有必须实现的接口,包括任何水果必须具备的方法:种植plant(),生长grow(),以及收获harvest()。
代码清单:
抽象产品角色
具体产品角色(苹果)
具体产品角色(葡萄)
具体产品角色(草莓)
水果异常类
静态工厂类
测试类