• 简单工厂模式不是23种设计模式之一,简单工厂模式属于创建型模式,
  • 又叫做静态工厂方法(Static Factory Method)
  • 简单工厂模式是工厂模式家族中最简单实用的模式,可以理解为是不同工厂模式的一个特殊实现。

角色:

抽象产品角色(Product) :

是所有对象的父类,它负责描述所有实例所共有的公共接口。

具体产品角色(ConcreteProduct) :

所有创建的对象都是充当这个角色的某个具体类的实例,实现了Product接口。

工厂类角色(Creator) :

简单工厂模式的核心,是创建所有实例的内部逻辑,可被外界直接访问(因为里面有一个静态方法),创建所需产品的对象。

代码实现:

1.Product.java

  1. package com.simplefactory ;
  2. // 定义一个抽象产品角色
  3. public interface Product
  4. {
  5. }

2.ConcreteProductA.java

  1. package com.simplefactory ;
  2. //具体产品角色A
  3. public class ConcreteProductA implements Product
  4. {
  5. }

3.ConcreteProductB.java

  1. package com.simplefactory ;
  2. //具体产品角色B
  3. public class ConcreteProductB implements Product
  4. {
  5. }

4.Creator.java

  1. package com.simplefactory ;
  2. //工厂类角色
  3. public class Creator
  4. {
  5. public static Product methodTest(String str)
  6. {
  7. if ("A".equals(str))
  8. {
  9. //这里可做好多事
  10. return new ConcreteProductA() ;
  11. }
  12. else if ("B".equals(str))
  13. {
  14. return new ConcreteProductB() ;
  15. }
  16. return null ;
  17. }
  18. }

5.Client.java

  1. package com.simplefactory ;
  2. public class Client
  3. {
  4. public static void main(String[] args)
  5. {
  6. Product product = Creator.methodTest("A") ;
  7. System.out.println(product.getClass().getName()) ;
  8. Product product2 = Creator.methodTest("B") ;
  9. System.out.println(product2.getClass().getName()) ;
  10. }
  11. }

Simple Factory (简单工厂模式)的更多相关文章

  1. Simple Factory 简单工厂模式(静态工厂)

    基本概念: 1) Simple Factory模式属于创建型模式, 2) 简单工厂模式是由一个工厂(注意是一个!)对象决定创建出哪一种产品类的实例(例如你到肯德基说你要鸡腿,要薯条,要饮料还是,,,这 ...

  2. Java设计模式:Simple Factory(简单工厂)模式

    概念定义 简单工厂(Simple Factory)模式,又称静态工厂方法(Static Factory Method)模式,即定义一个工厂类,根据传入的不同参数创建不同的产品实例,这些实例对象具有共同 ...

  3. 设计模式(四):SIMPLE FACTORY简单工厂模式 -- 创建型模式

    1.定义 简单工厂模式又称静态工厂方法模式.重命名上就可以看出这个模式一定很简单.它存在的目的很简单:定义一个用于创建对象的接口. 2.适用场景 如果一个客户要一款宝马车,一般的做法是客户去创建一款宝 ...

  4. Net设计模式实例之简单工厂模式(Simple Factory Pattern)

    一.简单工厂模式简介(Bref Introduction) 简单工厂模式(Simple Factory Pattern)的优点是,工厂类中包含了必要的逻辑判断,根据客户端的选择条件动态实例化相关的类, ...

  5. PHP设计模式(一)简单工厂模式 (Simple Factory For PHP)

    最近天气变化无常,身为程序猿的寡人!~终究难耐天气的挑战,病倒了,果然,程序猿还需多保养自己的身体,有句话这么说:一生只有两件事能报复你:不够努力的辜负和过度消耗身体的后患.话不多说,开始吧. 一.什 ...

  6. 设计模式之简单工厂模式Simple Factory(四创建型)

    工厂模式简介. 工厂模式专门负责将大量有共同接口的类实例化 工厂模式可以动态决定将哪一个类实例化,不必事先知道每次要实例化哪一个类. 工厂模式有三种形态: 1.简单工厂模式Simple Factory ...

  7. 创建型模式(前引)简单工厂模式Simple Factory

    一引出的原因(解决下面的问题) 简单工厂模式(Simple Factory Pattern):又称为静态工厂方法(Static Factory Method)模式,它属于类创建型模式. 在简单工厂模式 ...

  8. 深入浅出设计模式——简单工厂模式(Simple Factory)

    介绍简单工厂模式不能说是一个设计模式,说它是一种编程习惯可能更恰当些.因为它至少不是Gof23种设计模式之一.但它在实际的编程中经常被用到,而且思想也非常简单,可以说是工厂方法模式的一个引导,所以我想 ...

  9. 设计模式学习之简单工厂(Simple Factory,创建型模式)(1)

    简单工厂(Simple Factory,创建型模式) 第一步: 比如我们要采集苹果和香蕉,那么我们需要创建一个Apple类和Banana类,里面各自有采集方法get(),然后通过main方法进行调用, ...

随机推荐

  1. 洛谷——P1068 分数线划定

    P1068 分数线划定 题目描述 世博会志愿者的选拔工作正在 A 市如火如荼的进行.为了选拔最合适的人才,A 市对 所有报名的选手进行了笔试,笔试分数达到面试分数线的选手方可进入面试.面试分数线根 据 ...

  2. 安装xampp之后如何建立远程登录用户并修改登录方式和密码

    其实xampp作为开发环是非常好用的,但是很少人将其用作生产环境,主要还是它的安全性较低,很多默认设置都存在安全漏洞,但是实际上使用xampp在Linux下面进行配置确实是很节省时间的一件事(如果你的 ...

  3. Java高级架构师(一)第32节:Nginx的进程结构、基本配置

    核心模块.事件模块.标准Http模块.可选Http模块.邮件模块.第三方模块和补丁.

  4. phpok -- 域名问题

    nginx会改变连接的baseurl, 所以要改变nginx的server name的配置. 将网站改为静态也需配置nginx.

  5. 九.Spring Boot JPAHibernateSpring Data

    1.项目结构 2.导入jar包 <!-- 添加Spring-data-jpa依赖. --> <dependency> <groupId>org.springfram ...

  6. 二十四种设计模式:迭代器模式(Iterator Pattern)

    迭代器模式(Iterator Pattern) 介绍提供一种方法顺序访问一个聚合对象中各个元素,而又不需暴露该对象的内部表示. 示例有一个Message实体类,某聚合对象内的各个元素均为该实体对象,现 ...

  7. 教你u盘中毒后如何恢复被隐藏文件

    方法1: 1)在桌面空白处单击鼠标右键,新建一个文本文档,如下图所示: 2) 然后将下列一段代码拷贝到文档中: for /f "delims=?" %%a in ('dir /a ...

  8. yum安装 lnmp (linux+nginx+php7.1+mysql5.7)

    1.第一步先更新yum update 2.yum安装nginx安装nginx最新源:yum localinstall http://nginx.org/packages/centos/7/noarch ...

  9. echarts图形报表缓存问题(option数据缓存)

    这几天我在工作中用到了echarts开发报表.每次查询出来的数据都是新的,但是echart展现的图形报表却还是之前的数据.网上找了搜索了很多次也没能解决,后面加了技术群才解决的. 我开始已经确定是报表 ...

  10. DevExpress中的lookupedit的使用方法详解

    摘自: http://***/zh-CN/Info/catalog/17631.html 概述:本文详细介绍了DevExpress中的lookupedit的使用方法. 绑定数据源:   1 2 3 l ...