【设计模式】之工厂模式
2015-12-29 11:56
120 查看
目录
之我所见
结构框图
代码实例
总结
回到顶部
缺点:当产品修改时,工厂类也要做相应的修改。如:如何创建及如何向客户端提供。
回到顶部
回到顶部
结果
回到顶部
之我所见
结构框图
代码实例
总结
回到顶部
之我所见
工厂模式:客户类和工厂类分开。消费者任何时候需要某种产品,只需向工厂请求即可。消费者无须修改就可以接纳新产品。缺点:当产品修改时,工厂类也要做相应的修改。如:如何创建及如何向客户端提供。
回到顶部
结构框图
回到顶部
代码实例
interface Mcdonald{ void cooking(); } class Hamburger implements Mcdonald{ @Override public void cooking() { System.out.println("@-------MM吃汉堡-------@"); } } class Cola implements Mcdonald{ @Override public void cooking() { System.out.println("@-------MM喝可乐-------@"); } } class Frenchfries implements Mcdonald{ @Override public void cooking() { System.out.println("@-------MM吃薯条-------@"); } } public class Factory { public Mcdonald getFood(String type){ if(type==null){ return null; } if(type.equals("Hamburger")){ return new Hamburger(); } else if(type.equals("Cola")){ return new Cola(); } else if(type.equals("Frenchfries")){ return new Frenchfries(); } return null; } public static void main(String[] args) { Factory factory = new Factory(); System.out.println("@-------MM想吃汉堡-------@"); Mcdonald m1 = factory.getFood("Hamburger"); m1.cooking(); System.out.println("@-------MM想喝可乐-------@"); Mcdonald m2 =factory.getFood("Cola"); m2.cooking(); System.out.println("@-------MM想吃薯条-------@"); Mcdonald m3 = factory.getFood("Frenchfries"); m3.cooking(); } }
结果
@-------MM想吃汉堡-------@ @-------MM吃汉堡-------@ @-------MM想喝可乐-------@ @-------MM喝可乐-------@ @-------MM想吃薯条-------@ @-------MM吃薯条-------@
回到顶部
总结
追MM少不了请吃饭了,麦当劳的鸡翅和肯德基的鸡翅都是MM爱吃的东西,虽然口味有所不同,但不管你带MM去麦当劳或肯德基,只管向服务员说“来四个鸡翅”就行了。麦当劳和肯德基就是生产鸡翅的Factory。相关文章推荐
- 解决Windows客户端访问vsftpd服务器中文乱码问题
- iOS开发——图片轮播图+单选选项
- Mybatis/Ibatis,数据库操作的返回值
- Maven 标准目录结构
- Json基本概念
- SQL注入的几种实用办法
- Jq remove的使用
- DISCUZ x2.5 插件实现DIY功能,让页面也可以自由设计
- 网站CSS样式不起作用,或只有一部分起作用?随手记
- 清除WINDOW远程登录服务器的信息
- ShopEx 中规格属性增加时,自动计算其对应的销售价格,同时注意模板中的变量间的计算
- PHP 做图片锐化处理
- Android ViewFlipper实现多个布局手势切换的效果
- Apache htaccess的简单总结,以及参数的使用
- ShopEx customSchema 定制可以根据客户的需求对网站进行相应功能的添加修改或者删除
- DISCUZ 品牌空间恼人的游客评论名称Guest修改记录
- ShopEx 手动使用分类做导航时,获取当前导航的焦点状态
- PHP 实现移除数组中项目为空的元素或为某值的元素
- Android 中点击某个按钮实现 返回键 的功能
- Android 中 Activity 的生命周期