设计模式 --简单工厂模式
2018-02-07 23:59
295 查看
一、定义
简单工厂模式,依据传入的参数,生成对应的具体产品对象。简单工厂模式属于创建型模式,又称为静态工厂方法模式,但不属于23种模式之一。
二、要点
工厂方法一般设为静态方法;
返回值一般是是抽象类或者接口;
具体的产品类一般继承或实现抽象类、接口。
三、类图
四、简单工厂模式代码
1、Product类:抽象产品类,负责定义产品的共性
2、ConcreteProduct1类:具体产品类
3、ConcreteProduct2类:具体产品类
4、ConcreteFactory类:具体工厂类
5、 Client类:测试类
五、优缺点
优点:使用者不需要关系产品类的创建过程,与产品的实现类解耦;
缺点:工厂类的扩展比较困难
简单工厂模式,依据传入的参数,生成对应的具体产品对象。简单工厂模式属于创建型模式,又称为静态工厂方法模式,但不属于23种模式之一。
二、要点
工厂方法一般设为静态方法;
返回值一般是是抽象类或者接口;
具体的产品类一般继承或实现抽象类、接口。
三、类图
四、简单工厂模式代码
1、Product类:抽象产品类,负责定义产品的共性
package simpleFactory; /** * 抽象产品类,负责定义产品的共性 */ public abstract class Product { private String attribute; public void method1(){ System.out.println("Product do something!"); } public abstract void method2(); }
2、ConcreteProduct1类:具体产品类
package simpleFactory; /** * 具体产品类 */ public class ConcreteProduct1 extends Product { public void method2(){ System.out.println("ConcreteProduct1 do something!"); } }
3、ConcreteProduct2类:具体产品类
package simpleFactory; /** * 具体产品类 */ public class ConcreteProduct2 extends Product { public void method2(){ System.out.println("ConcreteProduct2 do something!"); } }
4、ConcreteFactory类:具体工厂类
package simpleFactory; /** * 具体的工厂类 */ public class ConcreteFactory { public static <T extends Product> T createProduct(Class<T> c){ //定义产品类 Product product = null; try{ //产生一个具体的产品类 product = (Product) Class.forName(c.getName()).newInstance(); }catch (Exception e){ e.printStackTrace(); } return (T)product; } }
5、 Client类:测试类
package simpleFactory; /** * @auther fenghui * @create 2018/2/2. */ public class Client { public static void main(String[] args) { //创建第一个具体的产品 Product concreteProduct1 = ConcreteFactory.createProduct(ConcreteProduct1.class); concreteProduct1.method1(); concreteProduct1.method2(); //创建第二个具体的产品 Product concreteProduct2 = ConcreteFactory.createProduct(ConcreteProduct2.class); concreteProduct2.method1(); concreteProduct2.method2(); } }
五、优缺点
优点:使用者不需要关系产品类的创建过程,与产品的实现类解耦;
缺点:工厂类的扩展比较困难
相关文章推荐
- 设计模式:简单工厂模式
- 设计模式随笔-策略模式与简单工厂的区别
- 设计模式之二简单工厂
- 简单工厂设计模式
- Java 23种设计模式之简单工厂模式
- 设计模式 ——简单工厂
- 设计模式一 简单工厂
- 设计模式学习之——简单工厂
- 设计模式实现(一)---简单工厂模式
- 设计模式一:简单工厂模式
- 设计模式—简单工厂、工厂方法、抽象工厂
- 设计模式——简单工厂
- 【设计模式】简单工厂
- C#设计模式--简单工厂
- 设计模式中简单工厂模式的应用----java
- 简单工厂设计模式
- java简单工厂设计模式
- IOS设计模式-简单工厂
- python设计模式(一)--简单工厂(上)
- 《Android之大话设计模式》--设计模式 创建型模式 第一章:简单工厂模式