FactoryMethod 工厂方法模式

FactoryMethod 工厂方法模式

目录

[TOC]

1. 概述

1.1. Head First设计模式定义

定义了一个创建对象的接口,但由子类决定要实例化的类是哪一个。工厂方法让类把实例化推迟到子类。

1.2. 自我理解

工厂方法其实是由简单工厂和模板模式结合起来的一种,一般工厂只针对一个对象初始化,而在初始化对象之后有一些事情需要做,那么把要做的事情都写到工厂里面也是很常见的事情。

1.3. 工厂方法的组成

抽象工厂角色:是具体工厂角色必须实现的接口或者必须继承的父类。
具体工厂角色:它含有和具体业务逻辑有关的代码,由应用程序调用以创建对应的具体产品的对象。实现了父类或接口中定义的抽象工厂方法。
抽象产品角色:它是具体产品继承的父类或者是实现的接口。
具体产品角色:具体工厂角色所创建的对象就是此角色的实例。

2. UML

3. Example

3.1. 场景

比如现在我们数据存储框架,MySQL、Oracle、Redis等都可能用于我们项目中,我们针对于不同的数据存储框架做对应的工厂。而每个工厂都要做连接的初始化,连接池管理等。每个数据库的初始化方式不一样,但是都需要检查传入的数据库地址、用户名、密码等是否为Null。
我们利用简单工厂+模板模式结合起来可以解决该现象。

3.2. FactoryMethod设计模式的代码实现

原创文章,转载请注明: 转载自LoserZhao – 诗和远方[ http://www.loserzhao.com/ ]

本文链接地址: http://www.loserzhao.com/java/designpattern/factory-method-designpattern.html

文章的脚注信息由WordPress的wp-posturl插件自动生成

发表评论?

0 条评论。

发表评论


注意 - 你可以用以下 HTML tags and attributes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">

使用新浪微博登陆