首页 > 代码库 > 02 简单工厂模式
02 简单工厂模式
简单工厂模式:从设计模式的类型上来说,简单工厂模式是属于创建型模式,又叫做静态工厂方法(Static Factory Method)模式,但不属于23种GOF设计模式之一。简单工厂模式是由一个工厂对象决定创建出哪一种产品类的实例。简单工厂模式是工厂模式家族中最简单实用的模式,可以理解为是工厂方法模式和抽象工厂模式的基础和初步实现。
简单工厂模式的UML类图:
从图中我们可以看到,简单工厂模式有三种角色。
1、简单工厂(SimpleProductFactory)
简单工厂角色负责创建所有实例
2、抽象产品(Product)
描述所有实例的所共有的公共接口
3、具体产品(ConcreteProduct)
具体产品是简单工厂模式的创建目标,所有创建的对象充当这个角色的某个具体类的实例
上面总共有三种类,一个是工厂类SimpleProductFactory,一个是产品接口Product,一个便是具体的产品,例如产品A和产品B,这之中,工厂类负责整个创建产品的逻辑判断,所以为了使工厂类能够知道我们需要哪一种产品,我们需要在创建产品时传递给工厂类一个参数,去表明我们想要创建哪种产品。
public class ProductClient { public static void main(String[] args) { Product product1 = ProductFactory.createProduct("A"); Product product2 = ProductFactory.createProduct("B"); product1.product(); product2.product(); }}class ProductA implements Product { @Override public void product() { System.out.println("生产产品A"); }}class ProductB implements Product { @Override public void product() { System.out.println("生产产品B"); }}interface Product { public void product();}class ProductFactory { private ProductFactory() { } public static Product createProduct(String productName) { if (productName == null) { return null; } if (productName.equals("A")) { return new ProductA(); } else if (productName.equals("B")) { return new ProductB(); } else { return null; } }}
02 简单工厂模式
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。