Java设计模式--工厂方法模式
2017-11-06 20:20
423 查看
角色
抽象工厂:担任这个角色是工厂方法模式的核心,它是与应用程序无关的。任何在模式中创建对象的工厂类都必须实现这个接口。具体工厂:担任这个角色的是实现了抽象工厂接口的具体Java类。具体工厂角色含有与应用密切相关的逻辑,并且受到应用程序的调用来创建产品对象。
抽象产品:工厂方法模式所创建对象的超类型,也就是产品对象的共同父类或接口。
具体产品:这个角色实现了抽象产品接口。
结构图
![](https://images2017.cnblogs.com/blog/813478/201711/813478-20171106201203247-298081185.png)
抽象工厂:
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(); } }
输出:
![](https://images2017.cnblogs.com/blog/813478/201711/813478-20171106230410028-1925871023.png)
工厂方法模式和简单工厂模式的区别:工厂方法模式的核心是一个抽象工厂类,而简单工厂模式的核心是一个具体类
相关文章推荐
- Java与设计模式(十)创建型--工厂方法模式
- Java设计模式-工厂方法模式
- 工厂方法模式(java 设计模式)
- Java与设计模式学习(一)--工厂方法模式FACTORY METHOD
- java设计模式(2):工厂方法模式(Factory Method)
- JAVA设计模式是个什么玩意儿_01_工厂方法模式
- JAVA设计模式 —工厂方法模式(Factory Method)
- JAVA设计模式(01):创建型-工厂模式【工厂方法模式】(Factory Method)
- JAVA的23种设计模式一-------工厂方法模式
- Java设计模式 -- 工厂方法模式
- java设计模式---工厂方法模式
- Java 设计模式之 简单工厂模式(静态工厂方法模式)
- Java设计模式 —— 工厂方法模式 (Factory Method)
- JAVA设计模式之【工厂方法模式】
- JAVA 设计模式工厂方法模式
- Java设计模式--工厂方法模式
- Java/Android 设计模式系列(3)--工厂方法模式
- JAVA设计模式☞☞工厂方法模式和抽象工厂模式区别
- Java23种设计模式案例:工厂方法模式(Factory Method)
- java设计模式学习 ----- 工厂方法模式(Factory Method)