* A:工厂方法模式概述*  工厂方法模式中抽象工厂类负责定义创建对象的接口,具体对象的创建工作由继承抽象工厂的具体类实现。*  简单来说:先定义一个工厂,工厂里面有些方法,这些方法就是用来创建动物的,然后有很多子工厂,顾客想创建猫,就来个猫工厂,想创建狗,就来个狗工厂*  创建针对的对象就是创建针对的工厂* B:优点*  客户端不需要再负责对象的创建,从而明确了各个类的职责,如果有新的对象增加,只需要增加一个具体的类和具体的工厂类即可,不影响已有的代码,后期维护容易,增强了系统的扩展性*  也就是,不用修改原来的代码,工厂定义完了,猫工厂,狗工厂定义完了之后,影响不大,以后想要再扩展的话,就在创建一个工厂,想要啥,就创建啥工厂就可以了,不用改原来的工厂,也不用该原来的设备* C:缺点*  需要额外的编写代码,增加了工作量* D:案例演示:*  动物抽象类:public abstract Animal(public abstract void eat();)*  工厂接口:public interface Factory(public abstract Animal creatAnimal();)*  具体狗类:public class Dog extends Animal{}*  具体猫类:public class Cat extends Animal{}*  开始:在测试类中每一个具体的内容自己创建对象,但是,创建对象的工作如果比较麻烦,就需要有人专门做这个事情,所以就制造了一个专门的类来创建对象,发现每次修改代码太麻烦,用工厂方法改进*  针对每一个具体的实现提供一个具体的工厂*  狗工厂:public class DogFactory implements Factory{*          public Animal createAnimal(){~~~}*      }*  猫工厂:public class CatFactory implements Factory{*          public Animal creatAnimal(){~~~}*      }
package com.yy.工厂方法;public interface Factory {          //先定义一个   工厂   接口public Animal createAnimal();   //该接口里面有个createAnimal方法,目的是为了创建动物//返回值类只能是Animal类型,不能是返回后狗,猫之类的;也就是所谓的多态的思想
}
package com.yy.工厂方法;public class DogFactory implements Factory {        //创建一个  狗  工厂(DogFactory类),让DogFactory去实现Factory这个接口@Overridepublic Animal createAnimal() {                  //然后再重写Factory这个接口里面的createAnimal方法return new Dog();                           //返回一只狗}   }
package com.yy.工厂方法;public class CatFactory implements Factory {        //创建一个  猫  工厂(CatFactory类),让CatFactory去实现Factory这个接口public Animal createAnimal() {                  //然后再重写Factory这个接口里面的createAnimal方法return new Cat();                           //返回一只猫}}
package com.yy.工厂方法;public class Test {                                 //创建一个测试类public static void main(String[] args) {DogFactory df = new DogFactory();           //创建 狗 工厂对象Dog d = (Dog) df.createAnimal();            //强制类型转换df.createAnimal();因为,createAnimal这个方法的返回值类型是Animal,想要用 Dog类型接收,就得将Animal类型强转为Dog类型d.eat();}}

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设计模式——工厂方法模式

    工厂方法模式:为工厂类定义了接口,使用多态来削弱工厂类的职责. * 将简单工厂创建对象的职责分担到子工厂类中,子工厂相互独立,互相不受影响. * 工厂方法模式也有他的局限性,当面对有复杂的树形结构的产 ...

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

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

最新文章

  1. 使用TestStack.White进行Windows UI的自动化测试 (1) 基础篇
  2. VSCode------搭建.net core 2.0,并配置到IIS服务器
  3. 线性表----单链表
  4. 亚马逊:自动选择AI模型,进化论方法效率更高!
  5. 十进制转十六进制_汇编语言 输入一位十六进制数,输出其十进制表示
  6. 783. 二叉搜索树节点最小距离
  7. 多元线性回归算法python实现_手写算法-Python代码推广多元线性回归
  8. SAP UI5 Web Component for React的图标和图片处理
  9. 当我们谈论生信的时候我们在谈什么
  10. pymysql 于pycharm中操作mysql
  11. php yof框架特点_PHP编程语言的特点
  12. 读掘金小册组件精讲总结2
  13. NetSetMan v5.0.5特别版
  14. AB测试-最佳方案测试
  15. Excel中快速删除换行
  16. 数据湖三剑客Delt Lake、Hudi、Iceberg详解
  17. STM32CubeMX介绍、下载与安装
  18. 如何将倒序改为正序C语言,快速排序(正序+倒序)C语言版
  19. Pygame实战:家里的小孩数学算数能力很差嘛?别慌—这款“巧算24点小游戏”等你来玩,管用。
  20. 音乐播放器(网页手机版)使用Jquery插件

热门文章

  1. Node.js学习(篇章一)
  2. vue结合ueditor富文本编辑器(换肤分离)
  3. vue slot的使用
  4. 天猫浏览型应用的CDN静态化架构演变(转)
  5. ArrayList和Vector的区别
  6. C++小项目-吃豆子游戏
  7. c#语言基础编程-转义符
  8. 分享下自己编译 XBMC 的过程(zhuan)
  9. Adroid学习之 从源码角度分析-禁止使用回退按钮方案
  10. android_Text