对于许久不用的东西,容易忘记。百度许久,也未能找到自己所要。 从今日起,有些东西就记载下来,不仅方便自己,希望能帮到他人吧。

辣条工厂生产不同品种的辣条,有圆的,扁的,方的等等。不过他们都有一个共同点:都是辣条。

具体代码实现:

1.抽象的产品类:定义SpicyStrip 辣条类下:

package factory.yancy;/*** 抽象产品* * @author yancy* */
public interface SpicyStrip  {/*** 开始制作*/void making();}

2.定义圆的(Round),扁的(Flat),方的(Square)的辣条。

package factory.yancy;/*** 圆的辣条* * @author yancy* */
public class Round implements SpicyStrip  {@Overridepublic void making() {System.out.println("制作圆的辣条.");}}package factory.yancy;/*** 扁的辣条* * @author yancy* */
public class Flat implements SpicyStrip  {@Overridepublic void making() {System.out.println("制作扁的辣条.");}}package factory.yancy;/*** 方的辣条* * @author yancy* */
public class Square implements SpicyStrip  {@Overridepublic void making() {System.out.println("制作方的辣条.");}}

3.抽象的工厂辣条接口定义如下:、


package factory.yancy;import factory.yancy.SpicyStrip;/*** @author yancy* */
public interface ISpicyStrip  {/*** 获取辣条* * @return*/SpicyStrip getSpicyStrip ();}

4.具体的工厂子类(圆、扁、方),分别创建不同的工厂子类:


package factory.yancy;/***  圆的*  @author yancy*/
public class RoundFactory implements ISpicyStrip{@Overridepublic SpicyStrip getSpicyStrip () {return new Round();}}package factory.yancy;/*** 扁的* @author yancy*/
public class FlatFactory implements ISpicyStrip{@Overridepublic SpicyStrip getSpicyStrip () {return new Flat ();}}package factory.yancy;/*** 方的* @author yancy*/
public class SquareFactory implements ISpicyStrip{@Overridepublic SpicyStrip getSpicyStrip () {return new Square ();}}

接下来就是编写测试类了。我的代码通过txt编写的,可能会出现问题,我这边就不测试了,你可以复制代码,有错误的,你多担待,修改一下。

说说我对工厂模式的理解吧?
有很多辣条的模型,需要生产那种模式的辣条,就是用相对应的模型。

23种设计模式-工厂方法模式《辣条工厂》相关推荐

  1. 2.5万字详解23种设计模式—创建型模式(简单工厂、工厂方法、抽象工厂、单例-多线程安全详解、建造者、原型)的详细解读、UML类图

    本文简述了各大设计模式,并通过UML和代码详细说明.本文大约共 2.5W 字,建议收藏.下方是本文的目录: 一.设计模式的认识 二.设计模式的分类 根据其目的 根据范围 三.设计模式的优点 四.设计模 ...

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

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

  3. 【设计模式】简单工厂模式+工厂方法模式+抽象工厂模式

    前提导论 故事 不采用工厂模式 简单工厂模式 工厂方法模式 故事 抽象工厂模式 故事结局 前提导论 为了学习设计模式时便于理解,我将用基于农夫和他的村子与森林为背景环境,讲一个故事时,阐述一个设计模式 ...

  4. UML图解简单工厂模式工厂方法模式抽象工厂模式区别

    简述 工厂模式(Factory Pattern)是 Java 中最常用的设计模式之一: 工厂模式包含 简单工厂模式& 工厂方法模式& 抽象工厂模式这三种: 这三者主要区别在于工厂实现的 ...

  5. 实践GoF的23种设计模式:建造者模式

    本文分享自华为云社区<[Go实现]实践GoF的23种设计模式:建造者模式>,作者: 元闰子. 简述 在程序设计中,我们会经常遇到一些复杂的对象,其中有很多成员属性,甚至嵌套着多个复杂的对象 ...

  6. 1-4 工厂模式(工厂方法模式/抽象工厂模式)

    工厂模式 工厂模式 概念解释 需求1 普通实现 简单工厂产生具体披萨 披萨店调用工厂做出具体披萨 工厂方法模式 简单工厂与工厂方法的区别 需求2 保证风味种类或者说原料都得是指定的 抽象工厂模式 工厂 ...

  7. 23种设计模式——装饰者模式

    文章目录 23种设计模式--装饰者模式 1.装饰者模式概述 2.装饰者模式的结构 3.装饰者模式的实现 4.装饰者模式的应用场景 23种设计模式--装饰者模式 1.装饰者模式概述 背景 有些人为了早上 ...

  8. 【Go实现】实践GoF的23种设计模式:命令模式

    上一篇:[Go实现]实践GoF的23种设计模式:代理模式 简单的分布式应用系统(示例代码工程):https://github.com/ruanrunxue/Practice-Design-Patter ...

  9. 23种设计模式7_代理模式之一静态代理

    23种设计模式7_代理模式之一静态代理 1 基本介绍 代理模式:为其他对象提供一种代理以控制对这个对象的访问 代理模式也叫委托模式,它是一项基本设计技巧.许多其他的模式,如状态模式.策略模式.访问者模 ...

  10. 23种设计模式之命令模式和策略模式的区别

    文章目录 概述 命令模式 策略模式 相同点 总结 概述 命令模式和策略模式确实很相似,只是命令模式多了一个接收者(Receiver)角色.它们虽然同为行为类模式,但是两者的区别还是很明显的.策略模式的 ...

最新文章

  1. jquery通过ajax提交form
  2. CNI (Container Network Interface)
  3. 《白鹿原》金句摘抄(六)
  4. linux open函数使用,linux中open函数使用
  5. 【Unity新闻】Unity发布白皮书《11种有效的玩家参与策略》
  6. php访问父类的所有属性,php – 在父类中使用$this仅在子类中显示父类属性
  7. 【Linux】tmpfs简介及增加方式
  8. ES6 iterator 迭代器
  9. 每天2小时,吃透 985博士总结的这套保姆级TensorFlow + PyTorch笔记(20G高清/PPT/代码)
  10. winform DevComponents.DotNetBar2 添加到工具栏方法
  11. SpeechSynthesisUtterance 语音合成使用 文字语音播报
  12. 最详细、最全面的【Java日志框架】介绍,建议收藏,包含JUL、log4j、logback、log4j2等所有主流框架
  13. 知识点总结之学习方式
  14. LaTex 之 各类括号总结
  15. 挥别2019,喜迎2020
  16. 虚拟空间windows和linux,虚拟主机选windows还是linux
  17. win10硬盘锁怎么解除_如何解锁BitLocker加密的Win10系统【图文教程】
  18. MacBook下使用VirtualBox虚拟Win7时设置分辨率为2560*1440
  19. Python numpy实现二维数组和一维数组拼接
  20. 去VB程序NAG窗口方法-4C法

热门文章

  1. Android app中这样用flow更方便-加载列表数据
  2. iOS开发 frame与bounds
  3. 笔记本电脑无线Wifi热点设置工具
  4. Hipster the Kid - “Thinking Of” WA47电子管麦克风录制说唱人声
  5. 双网卡 跃点_有关win7 pppoe拨号网络的跃点数及win7 多路internet访问带宽叠加 - Microsoft Community...
  6. 上学期间你收到最感动的小纸条是什么?
  7. Blogspot.com再次解封
  8. 网站漏洞修复 XSS漏洞的修复办法
  9. 廊坊金彩教育:店铺主图如何优化
  10. The requested URL was not found on this serve