博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
请MM吃饭之工厂模式实现
阅读量:7030 次
发布时间:2019-06-28

本文共 1554 字,大约阅读时间需要 5 分钟。

原创作品,允许转载,转载时请务必以超链接形式标明文章   、作者信息和本声明。否则将追究法律责任。
有了上次的失败经验,我发誓以后再也不去麦当劳了。原因有很多:
1.食物太单调了,添加个食物,就那么费劲,吃不饱。
2.服务员态度太傲慢了。(工厂责任太重了,万一它不高兴了,就意味着所有的请求失败了)
我又约了那位MM,向她做了很沉重的检讨,最后她终于给了我一个解释的机会。我一定要把握这个机会,所以我求爷爷告奶奶,感觉‘必胜客’不错。所以决定去那里。
 
结构图:
 
 
源码:
抽象工厂角色(Creator)
具体工厂角色
抽象产品角色
具体产品角色
 
 
2源代码:
 
抽象产品角色代码
package factory; 
/* 
* 食物接口 
*/
 
public 
interface Food { 
  
public 
void desc(); 
 
具体产品角色代码
package factory; 
public 
class Cocacola 
implements Food{ 
  
public 
void desc() { 
     
    System.out.println(
"可口可乐,酸酸甜甜就是我"); 
     
  } 
 
package factory; 
/* 
* 鸡翅类 
*/
 
public 
class ChickenWing 
implements Food { 
  
public 
void desc(){ 
    System.out.println(
"鸡翅香酥可口,跟老太太的裤腰似的"); 
  } 
 
抽象工厂角色
package factory; 
public 
interface Creator { 
    
  
public Food factor(); 
 
具体工厂角色:有多少具体产品,就对应几个具体工厂
package factory; 
public 
class ChickenWingCreator 
implements Creator{ 
  
public Food factor() {    
    
return 
new ChickenWing(); 
  } 
 
package factory; 
public 
class CocacolaCreator 
implements Creator{ 
  
public Food factor() {    
    
return 
new Cocacola(); 
  } 
 
 
“我”的代码
package factory; 
public 
class Client { 
  
/** 
    * @param args 
    * @throws BadFoodException    
    */
 
  
public 
static 
void main(String[] args){ 
    Creator cocacolaCreator ,chickenWingCreator; 
     
    Food cocacola,chickenWing; 
     
    cocacolaCreator = 
new CocacolaCreator(); 
    chickenWingCreator = 
new ChickenWingCreator(); 
     
    cocacola = cocacolaCreator.factor(); 
    chickenWing = chickenWingCreator.factor(); 
     
    cocacola.desc(); 
    chickenWing.desc(); 
     
  } 
 
 
经过这一次的接触,让我理解:食品花样还真不少。为啥?人家店,每天都有新添的食物,因为扩展不再困难。而且,这里面有许多的服务员(具体工厂角色),我从这个服务员A 要鸡翅,同时,让服务员B 拿可乐,速度快乐不少。而且如果服务员有时候忙不开,我可以要另外的食物,不用一棵树上吊死。比起上一次的就餐经理,生活美好了许多。

本文出自 “” 博客,请务必保留此出处

你可能感兴趣的文章
前端坑--表单篇
查看>>
P2P原理基础
查看>>
完成登录功能,用session记住用户名
查看>>
DBCP和C3P0使用--未完善
查看>>
JS常用方法(获取Class、获取元素样式、事件监听、cookie、ajax等)
查看>>
BZOJ 1084 最大子矩阵
查看>>
2018杭电多校第三场1007(凸包,极角排序)
查看>>
django中orm的简单操作
查看>>
Mybatis知识(1)
查看>>
[CentOS] 7 不执行文件 /etc/rc.d/rc.local
查看>>
模态窗口的各个属性
查看>>
10.28 (上午) 开课一个月零二十四天 (数据访问)
查看>>
为什么你应该(从现在开始就)写博客
查看>>
小技巧积累
查看>>
Java JDBC链接Oracle数据库
查看>>
Moss2010 部署命令
查看>>
Git 操作分支
查看>>
Grid search in the tidyverse
查看>>
hdu 三部曲 Contestants Division
查看>>
day22——创建表、增加数据、查询数据
查看>>