工厂方法模式:为工厂类定义了接口,使用多态来削弱工厂类的职责。
*          将简单工厂创建对象的职责分担到子工厂类中,子工厂相互独立,互相不受影响。
*          工厂方法模式也有他的局限性,当面对有复杂的树形结构的产品时,就必须为
*          每个产品创建一个对应的工厂类,当达到一定数量级就会出现类爆炸。
*          整体结构:   1.创建产品接口
*                      2. 定义产品类去实现产品接口
*                      3.定义(总)工厂接口,并在接口中定义创建产品工厂的方法(eg:create();)
*                      4.定义子(产品)工厂类,并在create方法中返回产品。(即return new xxxProduct();)
*                      5.在Main中根据工厂去创建不同的产品工厂。

实例:

package com.henu.factory;/*** @author George* @description 工厂方法模式:为工厂类定义了接口,使用多态来削弱工厂类的职责。*          将简单工厂创建对象的职责分担到子工厂类中,子工厂相互独立,互相不受影响。*          工厂方法模式也有他的局限性,当面对有复杂的树形结构的产品时,就必须为*          每个产品创建一个对应的工厂类,当达到一定数量级就会出现类爆炸。*          整体结构:   1.创建产品接口*                      2. 定义产品类去实现产品接口*                      3.定义(总)工厂接口,并在接口中定义创建产品工厂的方法(eg:create();)*                      4.定义子(产品)工厂类,并在create方法中返回产品。(即return new xxxProduct();)*                      5.在Main中根据工厂去创建不同的产品工厂。**/
public class TestFactoryMethodPattern {public static void main(String[] args) {//根据工厂去创建产品(即实例化对象)Factory factory = null;factory = new PhoneFactory();//创建手机factory.create();//创建电脑new ComputerFactory().create();}}//定义产品接口
interface Product{}//定义手机类
class Phone implements Product{//无参构造方法public Phone() {System.out.println("Phone被创建了!");}
}
//定义电脑类
class Computer implements Product{public Computer() {System.out.println("电脑被创建了!");}
}//定义工厂接口
interface Factory{public Product create();
}//定义手机工厂
class PhoneFactory implements Factory{@Overridepublic Product create() {return new Phone();}
}
//定义电脑工厂
class ComputerFactory implements Factory{@Overridepublic Product create() {return new Computer();}
}

java设计模式——工厂方法模式相关推荐

  1. JAVA设计模式 - 工厂方法模式

    工厂方法模式(Factory Pattern) 是一种创建型设计模式 , 它是Java中最常用的设计模式之一 . 1 . 工厂方法模式的定义 定义一个创建对象的接口 , 让子类决定实例化哪一个类 . ...

  2. Java设计模式--工厂方法模式

    工厂方法模式 1.工厂方法模式的概述 1.1工厂模式是简单工厂模式的延伸,符合开闭原则的基础上,还可以在增加新的具体产品对象时不需要对已有系统做任何修改. 1.2工厂方法模式:定义一个用于创建对象的接 ...

  3. 《转》java设计模式--工厂方法模式(Factory Method)

    本文转自:http://www.cnblogs.com/archimedes/p/java-factory-method-pattern.html 工厂方法模式(别名:虚拟构造) 定义一个用于创建对象 ...

  4. Java设计模式-工厂方法模式和抽象工厂模式

    工厂方法模式定义: 即定义一个创建对象的接口(即抽象工厂类),让其子类(具体工厂类)决定实例化哪一个类(具体产品类)."一对一"的关系 1,一抽象工厂类派生出多个具体工厂类: 2, ...

  5. Java设计模式—工厂方法模式抽象工厂模式

    工厂方法模式与抽象工厂模式都是设计模式中重要而且常见的模式.       工厂方法模式:定义一个用于创建对象的接口,让子类决定实例化哪一个类.工厂方法使一个类的实例化延迟到其子类. 通用类图如下: 在 ...

  6. Java设计模式-工厂方法模式的使用和介绍

    一.工厂方法模式简介 1.定义 工厂方法模式(Factory Method Pattern)又称为工厂模式,也叫虚拟构造器(Virtual Constructor)模式或者多态工厂(Polymorph ...

  7. java设计模式---工厂方法模式

    简单工厂模式的应用就是用来创建一个对象,简单工厂模式是将所有对象的初始化集于一个具体的工厂类来实现,这个工厂类负责所有产品的创建,但是这种创建只能创建单一的产品,如简单工厂模式里的ChickenFac ...

  8. Java——设计模式(工厂方法模式)

    * A:工厂方法模式概述* 工厂方法模式中抽象工厂类负责定义创建对象的接口,具体对象的创建工作由继承抽象工厂的具体类实现.* 简单来说:先定义一个工厂,工厂里面有些方法,这些方法就是用来创建动物的,然 ...

  9. 我的Java设计模式-工厂方法模式

    转载 https://zhuanlan.zhihu.com/p/29549253 转载于:https://www.cnblogs.com/thiaoqueen/p/8298328.html

最新文章

  1. 【Groovy】循环控制 ( Number 注入函数实现循环 | times 函数 | upto 函数 | downto 函数 | step 函数 | 闭包作为最后参数可写在外面 )
  2. 有关sed命令的用法
  3. python安装百度aip_Python3.6安装aip
  4. 如何做优化,UITabelView才能更加顺滑
  5. centos shell mysql数据库备份_CentOS6.5下通过Shell创建、备份、还原MySQL数据库
  6. Vue.js-----轻量高效的MVVM框架(二、Vue.js的简单入门)
  7. uploadify php完整,uploadify.php
  8. android车机升级carplay,现代增加支持DIY升级CarPlay,Android Auto的车型
  9. sip android 客户端,为什么星号无法与android sip客户端正常工作?
  10. Keil5下载芯片包并导入教程
  11. selenium上传附件的两种方式(普通上传和借助AutoIt识别Windows上传窗口)
  12. 联通物联卡为什么没有网络_联通物联卡的资费和优势怎样
  13. writing idiomatic python 读书笔记(2)
  14. 一个大牛的acm历程(看着就要颤抖)
  15. Jetson nano 使用ROS 实现串口通信,并且解析通信协议(C++)
  16. 西方经济学微观部分中的英文字母缩写
  17. 帝国织梦和各种php网页将局部广告进行屏蔽搜索引擎蜘蛛
  18. python怎么安装whl文件
  19. MacOs | 一只捣乱桌面宠物鹅
  20. 外线座机无法接入到程控交换机问题处理

热门文章

  1. 牛客多校2 - Fake Maxpooling(线性递推gcd+单调队列)
  2. HDU - 6194 string string string(后缀数组+RMQ+容斥)
  3. HDU - 6153 A Secret(KMP的next数组性质/扩展KMP)
  4. HDU - 1005 Number Sequence(循环群)
  5. 【数据结构】哈夫曼树与哈夫曼编码
  6. PTA第3章-2 查验身份证 (15 分)
  7. protobuf入门教程(五):枚举(enum)、包(package)
  8. MFC中获取命令行参数的几种方法
  9. Linux 下的 AddressSanitizer
  10. pycharm debug 断点调试