动物类型及子类型:

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. plotly可视化绘制多图(multiplot)
  2. GZFramwork数据库层《四》单据主从表增删改查
  3. 传奇芯片设计大神Jim Keller又离职了,英特尔失了总设计师,网友喊话雷军:挖他!...
  4. Dubbo + Zookeeper入门初探
  5. 前端学习(542):node得环境搭建
  6. SteamVR导致场景相机不正常
  7. iphone版 天行skyline_SkyLine
  8. 思考一下http.ListenAndServe + echo+gorm+xorm的可行性?
  9. GB-T 16260.1-2006 软件工程 产品质量
  10. 我的世界(15)-删除服务器地图区块(MCedit)
  11. 【matlab】多维向量的转置
  12. GhostScript 沙箱绕过(命令执行)漏洞(CVE-2018-19475)复现
  13. inno setup 卸载注册表_Inno Setup Compiler卸载时删除注册表
  14. 概率论与数理统计--大数定律与中心极限定理
  15. Acrel-2000T无线测温产品方案介绍(安科瑞-须静燕)
  16. Python爬取多网页表格数据(非table)
  17. PHP GD库文字生成图片及图片拼接
  18. VS2015:libcurl静态编译
  19. Unity -- 粒子系统,拖尾与线
  20. Linux进程中Dec04什么意思,用last命令时会总显示些crash,

热门文章

  1. mac在查看jre通路
  2. swfobject.js 2.2简单使用方法
  3. 使用OLE DB方式连接常用数据库的连接字符串的设置
  4. xForm应用开发手册
  5. 静态成员内部类和非静态成员内部类的实例化方式
  6. 01-05 Linux常用命令-性能统计
  7. websocket多客户端接收消息_WebSocket之消息接收发送
  8. 学习web前端开发大半年,迷茫了,感觉什么都没学会怎么破?
  9. H - 数据结构实验之链表九:双向链表
  10. linux安全基线检查,CentOS Linux 7安全基线检查