一个人要有思想,技术再牛的人,如果没有一点点文化气氛,那么也是个码农,不能追到女朋友滴。

我这个人文化真心不多,但是比较喜欢读古诗文。虽然读完之后,记在脑海里的不多,不过,就讨一个喜欢【读】。

Leechee:荔枝,南国四大果品居首。

1、简单模式

package patterns.createable.factory;
/*** "日啖荔枝三百颗,不辞长作岭南人"---摘自 宋朝苏轼·《惠州一绝》* 古人对荔枝的赞美,频频出现在诗句中* 的确,这南国的荔枝,的确值得品尝* 在南国有四大果品中,荔枝居首* * @author one**/
public class Leechee {void eat(){System.out.println("Eat Leechee");}}
package patterns.createable.factory;/*** 好东西,要学会分享,不要掖着。* 所以开了个荔枝加工厂,让四海之内的兄弟姐妹都尝尝* * @author one* */
public class LeecheeFactory {Leechee get() {return new Leechee();}}
package patterns.createable.factory;/*** 都听说荔枝好吃* 社区的人都来买来尝尝。* @author one**/
public class Test {/*** @param args*/public static void main(String[] args) {//工厂将荔枝打包,发往全国各地LeecheeFactory lf=new LeecheeFactory();//荔枝到达了中国皖南地区,那里的人也喜欢,就买了一点Leechee leechee=lf.get();//尝尝,的确不错leechee.eat();}}

得到的结果:

Eat Leechee

2、工厂方法模式

package patterns.createable.factory;/*** "大师兄,不好了,师傅被妖怪抓走了"* "出什么状况了?"* "我们的荔枝把妖怪培养成吃货,它们夹持了我们的师傅,要新口味的水果。"* "这...我来想办法。"思考良久,"老子的香蕉,难道也要分享给这群吃货。"* "恐怕那些吃货不肯吃啊!"* "呃...我们只要简单的包装一下。"* @author one**/
public abstract class Fruit {abstract void eat();
}
package patterns.createable.factory;/*** 新鲜口味的水果* @author one**/public class Banana extends Fruit {@Overridevoid eat() {System.out.println("Eat Banana");}}
package patterns.createable.factory;/*** 这个工厂就是生产香蕉的* @author one**/
public class BananaFactory {Banana get(){return new Banana();}}

好了....师傅放回来了,可是每两周又被妖怪威胁要新的口味,导致我的工厂越来越多,没法管理了,怎么办?

统一一下:

package patterns.createable.factory;/*** 成立总部,专做水果生意* @author one**/
public abstract class FruitFactory {abstract Fruit get();}

公司改造,上市!

这样让所有的公司统一管理。至于是什么业务,生产什么水果,从总公司拿到订单,吩咐子公司去做就行了。

3、抽象工厂模式

【这个不说,可以理解为:水果加工产业,不属于水果生产,这个时候,就更高一层的把公司“工厂”抽象】

========================

在网上看到很多文章,看到很多人经常把简单工厂模式和工厂方法模式弄混淆,这里再说一下:工厂是具体实例,那么就是产品【荔枝】了,而工厂方法模式是一类产品的抽象【荔枝和香蕉都属于水果】。至于抽象工厂,就是不同产品类了,完全没有产品共性了,但属于莫一个公司【水果和水果加工产业都属于一个公司】,或者一个单位。更高一层的抽象。

FACTORY设计模式【让吃货也能理解的程序】相关推荐

  1. OSChina 周一乱弹 —— 最无法理解的程序员行为

    2019独角兽企业重金招聘Python工程师标准>>> Osc乱弹歌单(2018)请戳(这里) [今日歌曲] @小鱼丁:分享陈珊妮的单曲<情歌> <情歌>- ...

  2. 吃货莫跑小小程序冲刺07

    今天是吃货莫跑小程序冲刺第七天,昨天一天培训,晚上加班加点,总算可以实现商品上架,今天打算检验一下劳动成果,和同伴商量商量是否有需要优化的地方. 转载于:https://www.cnblogs.com ...

  3. 程序员只能吃青春饭?老程序员爆料花样出路

    我们以前说的 "青春饭",一般都是服务行业或者娱乐行业,吃"脸蛋儿" 的职业. 而现在对 "青春饭" 的定义已经发生翻天覆地的变化,互联网经 ...

  4. 读书笔记系列--《理解专业程序员》tips

    理解专业程序员,给您带来大师的tips *"什么东西是绿的,有轮子,而且长在房子的周围"?* *"猜不出来,答案呢"?* *"是草,轮子是我瞎说的&q ...

  5. 从实践理解《程序员的自我修养》(1)

    从实践理解<程序员的自我修养>(1) 前言 这篇文档主要从实践的角度充分理解<程序员的自我修养>一书中提到的细节.书中提到的各种机制.数据结构,我都将在实际系统中找到并理解它们 ...

  6. 《理解专业程序员》读书笔记

    ​软件领域的经典,没有理由不站在巨人的肩膀上.每次遇到瓶颈,需要借助外力突破时,书籍,尤其是经典的好书,让人如虎添翼! | 一点提问: 专业程序员是怎么练成的? 如何培养使用工具的专业技术领导者? 为 ...

  7. 和平精英吃鸡助手微信小程序源码一键设置灵敏度键位捏脸

    这是一款吃鸡小助手类型的微信小程序源码 该小程序由键位,灵敏度,捏脸一键设置组合 小程序内的键位设置,灵敏度设置代码是由各大主播和职业选手那些分享的 然后改小程序通过全网采集而来 另外里面还有捏脸数据 ...

  8. 如何理解小程序的各种“没有”?

    2017年微信公开课上,张小龙公布了几乎完整的小程序生态模式 :微信里没有小程序入口.没有应用市场,分发模式几乎沿用公众号的模式,去中心化.张小龙做到了他承诺的:小程序不做应用市场(难怪苹果会允许小程 ...

  9. 微信小程序开发自学笔记 —— 三、理解小程序宿主环境

    理解小程序宿主环境 小程序可以调用宿主环境提供的微信客户端的能力. 渲染层和逻辑层 小程序的运行环境分成渲染层和逻辑层,WXML模板和WXSS样式工作在渲染层,JS 脚本工作在逻辑层. 小程序如何把脚 ...

最新文章

  1. zabbix 3.0 完全安装全解!
  2. java实现两个最大整数相加_JAVA-实现两个超大整数相加
  3. 交通预测论文笔记:Spatio-Temporal Graph Convolutional Networks: A Deep Learning Frameworkfor Traffic Forecast
  4. Oracle删除window服务
  5. MongoDB Wiredtiger存储引擎实现原理
  6. 算法可以申请专利么_Ta 在假笑么?这个识别算法可以鉴定
  7. php输入密码才能浏览,使用php为网页设置访问密码 - 小俊学习网
  8. java多线程编程synchronized关键字
  9. RAdam和LookAhead合二为一
  10. Win7网络和共享中心 依赖服务或组无法启动 解决办法
  11. 根据四个点坐标排列出左上右上右下左下位置关系
  12. 巨准SCRM私域案例拆解丨看看WonderLab如何霸屏朋友圈
  13. 百练1724ROADS
  14. android hook 第三方app_【MiSRC】技术分享-浅谈android hook技术
  15. Android 高仿微信支付键盘
  16. 计算机四级月工资多少,大学教授工资多少一月 薪水是多少
  17. html页面怎样打印二分之一,打印二分之一a4纸 大小的纸张 Word该如何设置?
  18. 量子计算机是哪个国家研制出来,万万没想到:最强大量子计算机居然由工业巨头研制出来了...
  19. Vue+Element UI完成新建调查问卷
  20. 细说final的的四种用法-----修饰类,修饰方法,常量,修饰参数 及内部类与final

热门文章

  1. setInterval动态时间处理
  2. 微软可能是全球最大的开源贡献者,但开发者似乎并不买账​​​​​​​
  3. Maximum execution time of 30 seconds exceeded解决办法
  4. 启动脚本gameserver
  5. Vijos P1848 记数问题【进制】
  6. fitnesse页面增加认证
  7. BTC缺乏关键性突破仍需调整,BCH强势姿态保持引领全场
  8. Delegate,Action,Func,匿名方法,匿名委托,事件
  9. 基于FPGA的SPI FLASH控制器设计
  10. 【工具篇】利用DBExportDoc V1.0 For MySQL自动生成数据库表结构文档(转