简单工厂模式(笔记)

来源:互联网 发布:录直播软件 编辑:程序博客网 时间:2024/04/30 00:43

 定义:

简单工厂模式属于类创建型模式,又叫静态工厂模式,是通过专门一个类来负责创建其他类的实例,被创建的类通常都具有相同的父类。

主要角色及UML图:

抽象产品角色:Product,简单工厂模式创建所有对象的父类,注意,这里的父类可以是接口也可以抽象类,这里描述所有实例所共有的公共的接口。

具体产品角色:Concrete Product,简单工厂模式所创建的具体实例对象,这些具体产品往往都具有相同的父类。

工厂角色:Creator,这是简单工厂模式的核心,负责创建所有类实例的内部逻辑,可以被外界直接调用,创建所需要的产品对象。

示意图:


// 抽象产品角色package com.pattern.simplefactory;public abstact Procut{  public void desc();} 

// 具体产品角色Apackage com.pattern.simplefactory;public ConcreateProductA extends Product{  public void desc(){     System.out.println("具体产品A");  }}


// 具体产品角色Bpackage com.pattern.simplefactory;public ConcreateProductB extends Product{  public void desc(){     System.out.println("具体产品B");  }}// 具体工厂角色package com.pattern.simplefactory;public class Creator{  public Product factory(String type){      if(type.equlas("a")){        return new ConcreateProductA();      }else{        return new ConcreateProductB();      }   }}// 客户端测试类package com.pattern.simplefactory;public class Client{ public static void main(String []args){    Creator creator = new Creator();    Product p = creator.factory("a");     p.desc();  }}



结果:

具体产品A

简单工厂模式的优缺点分析:

优点:工厂类是简单工厂模式的核心,通过工厂类外界不必知道内部产生对象的业务逻辑,只需要消费对象就可以了,有利于整个软件架构的优化

缺点:违背了单一职责,开闭的原则,要增加一个新的产品,都需要修改工厂类,同时违反了高内聚的原则。





0 0