策略模式需要自己动手去做,工厂模式是都准备好了你需要选择

工厂模式:有一天你决定去吃披萨,一看菜单,哦,种类很多呀,你就点了个培根披萨,过了二十分钟,你的披萨就来了就可以吃到了。但这个披萨是怎么做的,到底面粉放了多少,培根放了多少,佐料放了多少,有多少到工序,你是不需要管的,你需要的是一个美味培根披萨。

策略模式:同样还是在披萨店,你要一个培根披萨,老板说想吃自己去做吧。原料有培根、面粉、佐料。工序有1、2、3工序,你自己去做吧。然后你就需要自己去做,到底放多少培根,放多少面粉,放多少佐料,这都你自己来决定,工序1、2、3,你是怎么实现的,都你自己决定。最后你得到了披萨。

一般情况下,策略模式是为了解决的是策略的切换与扩展,更简洁的说是定义策略族,分别封装起来,让他们之间可以相互替换,策略模式让策略的变化独立于使用策略的客户。可以应用的场景有优惠系统、工资计算系统等。上例中,你可以自己做多种口味的披萨的,青菜的,牛肉的,海鲜的你都可以一次都做。而工厂模式主要解决的是资源的统一分发,将对象的创建完全独立出来,让对象的创建和具体的使用客户无关。主要应用在多数据库选择,类库文件加载等。上例中你可以点很多披萨,只要披萨店给提供的,你都可以点。很明显的是策略模式是开放的,作为一个主体你的活动范围是全程的,大多数事情要你自己亲力亲为。而工厂模式作是封闭的,作为主体的你的活动范围是有限的,很多事情都帮组你做好了,你直接“点”就可以了。

想到这里,我突然想云计算跟传统电脑模式的联系。

传统的电脑模式,你需要写程序,你得自己去装个eclips,你需要ps图片,你需要去装个photoshop,你需要看电影,你得装一个看电影软件。这就是典型的策略模式,什么东西必须你自己动手去实现。

而云计算,我需要写程序,云就跟你说,亲这里有eclips,你可以直接用了。你需要看电影,云就跟你说,亲,这里有pplive,你可以直接看电影,你需要美图,云说,亲,这里有美图秀秀,能帮你的照片变得很漂亮的哦。这就是典型的工厂模式。

最新文章

  1. 生成lua的静态库.动态库.lua.exe和luac.exe
  2. Mysql错误:Ignoring query to other database解决方法
  3. 快速入门系列--MVC--07与HTML5移动开发的结合
  4. ECMAScript数据类型
  5. 快书包CEO徐智明反思:我犯下哪些错误
  6. [源代码] - C#代码搜索器 - 续
  7. 将CString(unicode)转换为char*(ANSI)
  8. 通过jquery-ui中的sortable来实现拖拽排序
  9. vs 2013调试的时候重启的解决方案
  10. Windows系统安装Azure CLI
  11. SpringMVC 上传下载 异常处理
  12. Java创建二叉搜索树,实现搜索,插入,删除操作
  13. PAT1047: Student List for Course
  14. MySQL1:客户端/服务器架构
  15. AES256对称加密
  16. shell 递归枚举文件并操作
  17. guava-retrying 源码解析(阻塞策略详解)
  18. PHP开发小技巧③—实现多维数组转化为一维数组
  19. 在PC上像普通winform程序调试WINCE程序
  20. struts框架中OGNL表达式的使用之jsp页面获取action中的属性值

热门文章

  1. mySql 数据库设计原则
  2. Kubernetes之Controllers一
  3. ABAP-FI常用BAPI
  4. HDU 4859 海岸线(最小割+最大独立点权变形)
  5. 用Let's Encrypt实现Https(Windows环境+Tomcat+Java)
  6. 理解 Redis(7) - Set 值
  7. hdu 1011 Starship Troopers 树形背包dp
  8. python中while循环运算符及格式化输出
  9. mysql 中判断表是否存在 以及表存在则删除
  10. config配置