首页 > 代码库 > 简单工厂模式(simple factory pattern)
简单工厂模式(simple factory pattern)
简单工厂模式是由一个工厂对象来决定创建出哪一种产品类的实例(对象),就是由一个工厂类根据传入的参数来决定需要创建哪一种产品的对象或实例。
此模式主要涉及到工厂角色,抽象产品,具体产品三个角色
工厂类(Creator),此模式的核心,含有与应用紧密相关的商业逻辑,
抽象产品(Product),担任需要创建产品的父类,一般由一个java接口事抽象类来实现
具体产品(Concrete Product),需要创建的产品的实例
源代码如下:
1:抽象产品
public interface Fruit { void grow(); void plant(); }2:具体产品1
public class Apple implements Fruit { public Apple() { System.out.println("Apple.Apple"); } @Override public void grow() { System.out.println("Apple.grow"); } @Override public void plant() { System.out.println("Apple.plant"); } }
3:具体产品2
public class FruitGardener { public static Fruit factory(String which) { if (which.equalsIgnoreCase("apple")) { return new Apple(); } else { return new StrawBerry(); } } }4:核心工厂类
public class StrawBerry implements Fruit { public StrawBerry() { System.out.println("StrawBerry.StrawBerry"); } @Override public void grow() { System.out.println("StrawBerry.grow"); } @Override public void plant() { System.out.println("StrawBerry.plant"); } }5:测试类
public class Tests { @Test public void testSimpleFactory() { FruitGardener.factory("APPLE"); FruitGardener.factory("strawberry"); } }
Apple.Apple StrawBerry.StrawBerry Process finished with exit code 0
7:说明,本项目是基于maven构建,测试框架是采用 JUnit
<dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.11</version> </dependency>8:后面会添加源代码
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。