动物类型及子类型:

package factory_method_mode;/*** 动物类型*/
public interface Animal {/*** 发声*/void say();}/*** 猫*/
class Cat implements Animal {@Overridepublic void say() {System.out.println("喵喵!");}}/*** 狗*/
class Dog implements Animal {@Overridepublic void say() {System.out.println("旺旺!");}}

动物工厂类型:

package factory_method_mode;/*** 动物工厂类型*/
public interface AnimalFactory {/*** 创建动物*/Animal createAnimal();}

猫工厂类:

package factory_method_mode;/*** 猫工厂类*/
public class CatFactory implements AnimalFactory {/*** 创建猫*/@Overridepublic Animal createAnimal() {return new Cat();}}

狗工厂类:

package factory_method_mode;/*** 狗工厂类*/
public class DogFactory implements AnimalFactory {/*** 创建狗*/@Overridepublic Animal createAnimal() {return new Dog();}}

类图:

测试类:

package factory_method_mode;public class Client {public static void main(String[] args) {//根据设计理论建议: 使用工厂方法模式. 但实际上, 我们一般都用简单工厂模式//虽然符合了开闭原则, 但类会增多Animal c2 = new CatFactory().createAnimal();Animal d2 = new DogFactory().createAnimal();c2.say();d2.say();}}

打印结果:

喵喵!
旺旺!

谢谢声明出处!

转自: http://www.cnblogs.com/gscq073240/articles/7127712.html

转载于:https://www.cnblogs.com/gscq073240/articles/7127712.html

23模式之: 工厂方法模式demo相关推荐

  1. 23种设计模式之简单工厂模式,工厂方法模式,抽象工厂模式详解

    工厂模式详解 1. 简单工厂模式 1.1 需求分析 1.2 使用传统方式实现 1.2.1 类图 1.2.2 代码实现 1.2.2.1 新建pizza抽象类 1.2.2.2 希腊披萨实现类 1.2.2. ...

  2. 23种设计模式,今天来聊聊模板模式,工厂方法模式,单例模式。

    23种设计模式,今天来聊聊模板模式,工厂方法模式,单例模式. 1. 随处可见的模板模式 2. 暗含讲究的工厂方法模式 3. 单例模式隐含的坑你能看到第几层? 视频讲解如下,点击观看: [干货篇]23种 ...

  3. 23种设计模式——工厂方法模式

    目录 回顾简单工厂模式 工厂方法模式 优缺点 工厂方法模式VS简单工厂模式 应用场景 实例 用工厂方法模式实现计算器 导出数据 回顾简单工厂模式 可以参考我的另一篇博客 工厂类角色LightSimpl ...

  4. python工厂模式 取代__init___浅析Python 简单工厂模式和工厂方法模式的优缺点

    前言 在<设计模式>一书中工厂模式提到了: 工厂方法模式(Factory Method) 抽象工厂模式 (Abstract Factory) 但是在实际过程中还有一种工厂模式经常被使用,那 ...

  5. 工厂模式——三个工厂模式(简单工厂模式,工厂方法模式,抽象工厂模式)...

    工厂模式在<Java与模式>中分为三类: 1)简单工厂模式(Simple Factory):不利于产生系列产品: 2)工厂方法模式(Factory Method):又称为多形性工厂: 3) ...

  6. 简单工厂模式,工厂方法模式,抽象工厂模式总结-java版

    文章目录 LOG:更新日志 一.简单工厂模式,工厂方法模式,抽象工厂模式定义 二.三种工厂模式的优缺点以及适用场景 三.名词解释 四.简单工厂模式.工厂方法模式与抽象工厂模式之间的区别 五.抽象工厂模 ...

  7. 深入理解设计模式-简单工厂模式vs工厂方法模式vs抽象工厂模式对比讲解

    文章目录 前言 一.简单工厂模式 1.描述 2.特点 3.优缺点 4.类图说明 二.工厂方法模式 1.描述 2.特点 3.适用场景 4.类图说明 5.简单工厂模式与工厂方法模式区别: 三.抽象工厂模式 ...

  8. 工厂模式(简单工厂模式和工厂方法模式)详解

    简单工厂模式 (Simple Factory Pattern) 工厂方法模式 (Factory Method Pattern) 工厂模式: 工厂方法模式定义一个用于创建对象的接口,让子类决定实例化哪一 ...

  9. 设计模式之工厂类模式总结对比、简单工厂模式、工厂方法模式、抽象工厂模式、带反射的工厂模式、例子代码分析、最详细

    1. 题目 假设某公司同时用SqlServer.MySql数据库,即会切换两数据库(不同数据库的sql语句有些许差异),同时,两数据库里均有对Users.Departments表的操作(sql代码不一 ...

  10. 抽象工厂模式java_面试官:说一下静态工厂模式,工厂方法模式,抽象工厂的区别吧...

    静态工厂模式 用生活中的场景类比一下这三种模式,假如你想学习Java视频,你得自己到处去找资料,找资料是一个繁琐的过程,过一段时间你又想学Python视频了,你还得去找资料.现在你在学校上学,你想学J ...

最新文章

  1. 去某大厂三面总监面,因为迟到了5分钟,面试官当着我的面把简历扔垃圾桶了...
  2. IccFileHandler和IccRecords
  3. 网页版python叫什么-python脚本和网页有何区别
  4. rsync 服务快速部署手册
  5. eclipse html插件_欲善事先利器——IDEA 插件篇
  6. JavaEE编码规范
  7. Mac OS 系统工具使用
  8. vue(h5)打包apk
  9. Linux操作系统——vi文本编辑器
  10. 机房内网电脑时间自动同步器
  11. 是时候让《武林外传》教你反内卷了
  12. 新中大软件ngpower6.1单机版安装流程(WIN11)
  13. 【文件上传漏洞-07】中间件文件解析漏洞概述及实例——Apache、IIS和Nginx
  14. 会议OA项目(项目原型图介绍发布会议功能)
  15. 2021年山东大学程序设计精英挑战赛 真题
  16. Qt内存泄露工具Heob安装使用
  17. 工厂模式与超级英雄的那些事儿
  18. 关于极坐标下图像旋转与二维傅里叶变换的讨论
  19. 解决Win10桌面Explorer.exe占用CPU过高的问题。
  20. 寂静的夏夜,寂静的梦

热门文章

  1. c#与获得文件夹路径,站点目录
  2. [转载]名字长的麻烦
  3. 双核CPU揭密:英特尔/AMD没有告诉你的五项事实【ZZ】
  4. Windows系统中通过命令查看文件的MD5,SHA1,SHA256校验值
  5. Linux服务器添加SVN用户
  6. 华为RH2285H V2设备管理口白屏的解决方法
  7. Servlet Cookie 处理
  8. c语言搬山游戏,C语言实现搬山游戏代码解析
  9. 做web前端的小伙伴注意了,未来这些发展方向可以试试!
  10. 2020年了,JavaScript依然是前端最受欢迎的语言吗?