Java设计模式--工厂方法模式
Posted 小LUA
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java设计模式--工厂方法模式相关的知识,希望对你有一定的参考价值。
角色
抽象工厂:担任这个角色是工厂方法模式的核心,它是与应用程序无关的。任何在模式中创建对象的工厂类都必须实现这个接口。
具体工厂:担任这个角色的是实现了抽象工厂接口的具体Java类。具体工厂角色含有与应用密切相关的逻辑,并且受到应用程序的调用来创建产品对象。
抽象产品:工厂方法模式所创建对象的超类型,也就是产品对象的共同父类或接口。
具体产品:这个角色实现了抽象产品接口。
结构图
抽象工厂:
package com.design.factorymethod; public interface Factory { Product createProduct(); }
抽象产品:
package com.design.factorymethod; public interface Product { void productInfo(); }
具体产品:
package com.design.factorymethod; public class ProductA implements Product { @Override public void productInfo() { System.out.println("Product A"); } }
package com.design.factorymethod; public class ProductB implements Product { @Override public void productInfo() { System.out.println("Product B"); } }
具体工厂:
package com.design.factorymethod; public class FactoryA implements Factory { @Override public Product createProduct() { return new ProductA(); } }
package com.design.factorymethod; public class FactoryB implements Factory { @Override public Product createProduct() { return new ProductB(); } }
测试:
package com.design.factorymethod; public class Client { private static Factory factoryA, factoryB; private static Product productA, productB; public static void main(String[] args){ factoryA = new FactoryA(); factoryB = new FactoryB(); productA = factoryA.createProduct(); productB = factoryB.createProduct(); productA.productInfo(); productB.productInfo(); } }
输出:
工厂方法模式和简单工厂模式的区别:工厂方法模式的核心是一个抽象工厂类,而简单工厂模式的核心是一个具体类
以上是关于Java设计模式--工厂方法模式的主要内容,如果未能解决你的问题,请参考以下文章
java设计模式:工厂方法模式(Factory Method)