`

"简单工厂模式(Simple Factory)"总结,又叫静态工厂方法(Static Factory Method)

阅读更多
下面讲解简单工厂模式:

意图:简单工厂模式是类的创建模式,又叫做静态工厂方法(Static Factory Method)模式。简单工厂模式是由一个工厂对象决定创建出哪一种产品类的实例。通常它根据比变量的不同返回不同的类的实例。


简单工厂模式的实质是由一个工厂类根据传入的参数,动态决定应该创建出哪一个产品类的实例。


简单工厂模式(Simple Factory)模式的构成:
1、工厂类(Creator)角色:担任这个角色的是简单工厂模式的核心,含有与应用紧密相关的商业逻辑。工厂类在客户端的直接调用下创建产品对戏那个,它往往由一个具体类实现。
2、抽象产品(Product)角色:担任这个角色的类是简单工厂模式所创建的对象的父类,或它们共同拥有的接口。抽象产品角色可以用一个接口或抽象类实现。
3、具体产品(Concretr Product)角色:简单工厂模式所创建的任何对象都是这个角色的实例,具体产品角色由一个具体类实现。


下面自己实现一个简单工厂模式:
package com.shengshiyuan.simplefactory;

/**
 * 抽象产品角色(抽象类或接口)
 * 类: Product <br>
 * 描述: TODO <br>
 * 作者: 
 * 时间: Dec 5, 2013 2:42:11 PM
 */
public abstract class Product {

}

package com.shengshiyuan.simplefactory;

/**
 * 具体产品角色
 * 类: ConcreteProductA <br>
 * 描述: TODO <br>
 * 作者: 
 * 时间: Dec 5, 2013 2:44:18 PM
 */
public class ConcreteProductA extends Product {

}

package com.shengshiyuan.simplefactory;

/**
 * 具体产品角色
 * 类: ConcreteProductB <br>
 * 描述: TODO <br>
 * 作者: 
 * 时间: Dec 5, 2013 2:44:36 PM
 */
public class ConcreteProductB extends Product {

}

package com.shengshiyuan.simplefactory;

/**
 * 工厂类角色
 * 类: Creater <br>
 * 描述: TODO <br>
 * 作者: 
 * 时间: Dec 5, 2013 2:45:22 PM
 */
public class Creator {
	public static Product createPruduct(String str) {
		if ("A".equals(str)) {
			return new ConcreteProductA();
		} else if ("B".equals(str)) {
			return new ConcreteProductB();
		}
		return null;
	}
}

package com.shengshiyuan.simplefactory;

/**
 * 客户端测试类
 * 类: Client <br>
 * 描述: TODO <br>
 * 作者: 
 * 时间: Dec 5, 2013 2:47:16 PM
 */
public class Client {
	public static void main(String[] args) {
		Product productA = Creator.createPruduct("A");
		System.out.println(productA.getClass().getName());

		Product productB = Creator.createPruduct("B");
		System.out.println(productB.getClass().getName());
	}
}
分享到:
评论

相关推荐

    Simple Factory Pattern.rar【GoF的简单工厂模式(C#源码)】

    简单工厂(Simple Factory)模式又称为静态工厂方法(Static Factory Method)模式,属于类的创建型模式,通常它根据自变量的不同返回不同的类的实例。 简单工厂模式的实质是由一个工厂类根据传入的参量,动态决定...

    php设计模式之简单工厂模式详解

    1、简单工厂模式(Simple Factory)又叫做 静态工厂方法模式(Static Factory Method) 2、工厂方法模式(Factory Method)又叫做 多态性工厂模式(Polymorphic Factory) 3、抽象工厂模式(Abstract Factory)又叫做 工具...

    实例讲解PHP设计模式编程中的简单工厂模式

    (1)简单工厂(Simple Factory)模式,又称静态工厂方法模式(Static Factory Method Pattern)。 (2)工厂方法(Factory Method)模式,又称多态性工厂(Polymorphic Factory)模式或虚拟构造子(Virtua

    简单工厂模式 应用

    简单工厂模式(Simple Factory Pattern)属于类的创新型模式,又叫静态工厂方法模式(Static FactoryMethod Pattern),是通过专门定义一个类来负责创建其他类的实例,被创建的实例通常都具有共同的父类。 将“类实例...

    简单工厂经典原码

    简单工厂模式是属于创建型模式,又叫做静态工厂方法(StaticFactory Method)模式,但不属于23种GOF设计模式之一。简单工厂模式是由一个工厂对象决定创建出哪一种产品类的实例。简单工厂模式是工厂模式家族中最简单...

    java设计模式CatalogDAOFactory是典型的工厂方法

    是因为 SimpleFactory内,生产Sample和生产Sample2的方法之间有一定联系,所以才要将这两个方法捆绑在一个类中,这个工厂类有其本身特征,也许制造过程是统一的,比如:制造工艺比较简单,所以名称叫SimpleFactory。...

    二十三种设计模式【PDF版】

    设计模式之 Factory(工厂方法和抽象工厂) 使用工厂模式就象使用 new 一样频繁. 设计模式之 Builder 汽车由车轮 方向盘 发动机很多部件组成,同时,将这些部件组装成汽车也是一件复杂的工作,Builder 模式就是将这...

    PHP设计模式(2017年8月力作)

    Abstract Factory , Builder , Factory Method , Multiton , Pool , Prototype , Simple Factory , Singleton , Static Factory , Structural , Adapter / Wrapper , Bridge , Composite, Data Mapper , Decorator ,...

    java 面试题 总结

    Servlet被服务器实例化后,容器运行其init方法,请求到达时运行其service方法,service方法自动派遣运行与请求对应的doXXX方法(doGet,doPost)等,当服务器决定将实例销毁的时候调用其destroy方法。 与cgi的区别...

    超级有影响力霸气的Java面试题大全文档

     Servlet被服务器实例化后,容器运行其init方法,请求到达时运行其service方法,service方法自动派遣运行与请求对应的doXXX方法(doGet,doPost)等,当服务器决定将实例销毁的时候调用其destroy方法。 与cgi的区别...

    ZendFramework中文文档

    4.2.1. Zend_Cache 工厂方法 4.2.2. 标记纪录 4.2.3. 缓存清理 4.3. Zend_Cache前端 4.3.1. Zend_Cache_Core 4.3.1.1. 简介 4.3.1.2. 可用选项 4.3.1.3. 例子 4.3.2. Zend_Cache_Frontend_Output 4.3.2.1. ...

    客户关系管理系统框架搭建(二)

    //调用父类的setSessionFactory方法,注入sessionFactory super.setSessionFactory(sessionFactory); } } * 创建部门的dao接口 SysUserGroupDao接口 放在cn.itcast.crm.dao包下 ...

    Google C++ Style Guide(Google C++编程规范)高清PDF

    Scoping Namespaces Nested Classes Nonmember, Static Member, and Global Functions Local Variables Static and Global Variables Classes Doing Work in Constructors Default Constructors Explicit ...

    SPRING API 2.0.CHM

    ConnectionFactoryUtils.ResourceFactory ConnectionHandle ConnectionHolder ConnectionHolder ConnectionProxy ConnectionSpecConnectionFactoryAdapter ConnectorServerFactoryBean ConsoleListener ...

    javacv-platform-1.3.3-src

    // Objects allocated with a create*() or clone() factory method are automatically released // by the garbage collector, but may still be explicitly released by calling release(). // You shall NOT ...

    Thinking in Java 4th Edition

    The static keyword ..................... 51 Your first Java program ....... 52 Compiling and running ............... 54 Comments and embedded documentation ..................... 55 Comment ...

    spring-framework-reference4.1.4

    Instantiation with a static factory method .................................................... 30 Spring Framework 4.0.0.RELEASE Spring Framework Reference Documentation iii Instantiation using an ...

    spring-framework-reference-4.1.2

    Instantiation with a static factory method .................................................... 30 Spring Framework 4.0.0.RELEASE Spring Framework Reference Documentation iii Instantiation using an ...

    JavaEE 5.0 Tutorial.pdf

    Sun 官方 J2ee 5.0 教程 The Java EE 5Tutorial For Sun Java System Application Server 9.1 Contents Preface ..................................................................................................

Global site tag (gtag.js) - Google Analytics