- 浏览: 198543 次
- 性别:
- 来自: 南京
文章分类
最新评论
-
yixinhu:
你好 能加下你的QQ么 我怎么打出来的exe点击都没反应啊.. ...
java 生成exe 文件 -
chenxiang105:
如果不需要flash 只需要做图片的翻页效果 这个是否也合适类 ...
jQuery插件page peel AD实现动态卷页、翻页或卷角flash广告效果 -
tuoxie007:
幸苦,好文章!
jetspeed门户项目组介绍 -
bobo:
需要考虑不同浏览器的兼容性
通过网页访问本地资源程序 -
tag13346:
说得这么玄,看下
时空趋势理论 --- 超越时空的均线技术(转载 )
工厂发法定义了一个创建对象的接口或者抽象类,但是有子类来决定要实例化的类是哪一个,工厂方法让类把实例化 推迟到子类。
package pattern; import java.util.ArrayList; public abstract class PizzaStore { SimplePizzaFactory factory; public PizzaStore() { } public PizzaStore(SimplePizzaFactory factory) { this.factory = factory; } public Pizza orderPizza(String type) { Pizza pizza; pizza = createPizza(type); pizza.prepare(); pizza.bake(); pizza.cut(); pizza.box(); return pizza; } abstract Pizza createPizza(String type); } class NYPizzaStore extends PizzaStore { Pizza createPizza(String item) { if (item.equals("cheese")) { return new NYStyleCheesePizza(); } else if (item.equals("pepperoni")) { return new NYStylePepperoniPizza(); } else if (item.equals("clam")) { return new NYStyleClamPizza(); } else if (item.equals("veggie")) { return new NYStyleVeggiePizza(); } else return null; } } class ChicagoPizzaStore extends PizzaStore { Pizza createPizza(String item) { if (item.equals("cheese")) { return new ChicagoStyleCheesePizza(); } else if (item.equals("pepperoni")) { return new ChicagoStylePepperoniPizza(); } else if (item.equals("clam")) { return new ChicagoStyleClamPizz(); } else if (item.equals("veggie")) { return new ChicagoStyleVeggiePizza(); } else return null; } } class CaliforniaPizzaStore extends PizzaStore { Pizza createPizza(String item) { if (item.equals("cheese")) { return new CaliforniaStyleCheesePizza(); } else if (item.equals("pepperoni")) { return new CaliforniaStylePepperoniPizza(); } else if (item.equals("clam")) { return new CaliforniaStyleClamPizza(); } else if (item.equals("veggie")) { return new CaliforniaStyleVeggiePizza(); } else return null; } } abstract class Pizza { String name; String dough; String sauce; ArrayList toppings = new ArrayList(); public void prepare() { System.out.println("Preparing" + name); System.out.println("Tossing dough..."); System.out.println("Adding sauce..."); System.out.println("Adding toppings: "); for (int i = 0; i < toppings.size(); i++) { System.out.println(" " + toppings.get(i)); } } public void bake() { System.out.println("Bake for 25 minutes at 350"); } public void cut() { System.out.println("Cutting the pizza into diagonal slices"); } public void box() { System.out.println("Place pizza in official PizzaStore box"); } public String getName() { return name; } } class CheesePizza extends Pizza { public CheesePizza() { System.out.println("Cheesepizza"); } } class NYStyleCheesePizza extends Pizza { public NYStyleCheesePizza() { name = "NY Style sauce and Cheese Pizza"; dough = "Thin Crust Dough"; sauce = "Marinara Sauce"; toppings.add("Grated Reggiano Cheese"); } } class ChicagoStyleCheesePizza extends Pizza { public ChicagoStyleCheesePizza() { name = "Chicago StyleDeep Dish Cheese Pizza"; dough = "Extra Thick Crust Dough"; sauce = "Plum Tomato Sauce"; toppings.add("Shredded Mozzarella Cheese"); } public void cut() { System.out.println("Cutting the pizza into square slices"); } } class CaliforniaStyleCheesePizza extends Pizza { public CaliforniaStyleCheesePizza() { name = "California Style sauce and Cheese Pizza"; dough = "Thin Crust Dough"; sauce = "Marinara Sauce"; toppings.add("Grated California Cheese"); } } class PepperoniPizza extends Pizza { public PepperoniPizza() { System.out.println("PepperoniPizza"); } } class NYStylePepperoniPizza extends Pizza { public NYStylePepperoniPizza() { name = "NY Style sauce and Cheese Pizza"; dough = "Thin Crust Dough"; sauce = "Marinara Sauce"; toppings.add("Grated Pepperoni Cheese"); } } class ChicagoStylePepperoniPizza extends Pizza { public ChicagoStylePepperoniPizza() { name = "Chicago StyleDeep Dish Cheese Pizza"; dough = "Extra Thick Crust Dough"; sauce = "Plum Tomato Sauce"; toppings.add("Shredded Pepperoni Cheese"); } public void cut() { System.out.println("Cutting the pizza into square slices"); } } class CaliforniaStylePepperoniPizza extends Pizza { public CaliforniaStylePepperoniPizza() { name = "California Style sauce and Cheese Pizza"; dough = "Thin Crust Dough"; sauce = "Marinara Sauce"; toppings.add("Grated Pepperoni Cheese"); } } class ClamPizza extends Pizza { public ClamPizza() { System.out.println("ClamPizza"); } } class NYStyleClamPizza extends Pizza { public NYStyleClamPizza() { name = "NY Style sauce and Cheese Pizza"; dough = "Thin Crust Dough"; sauce = "Marinara Sauce"; toppings.add("Grated ClamPizza Cheese"); } } class ChicagoStyleClamPizz extends Pizza { public ChicagoStyleClamPizz() { name = "Chicago StyleDeep Dish Cheese Pizza"; dough = "Extra Thick Crust Dough"; sauce = "Plum Tomato Sauce"; toppings.add("Shredded Clam Cheese"); } public void cut() { System.out.println("Cutting the pizza into square slices"); } } class CaliforniaStyleClamPizza extends Pizza { public CaliforniaStyleClamPizza() { name = "California Style sauce and Cheese Pizza"; dough = "Thin Crust Dough"; sauce = "Marinara Sauce"; toppings.add("Grated Clam Cheese"); } } class VeggiePizza extends Pizza { public VeggiePizza() { System.out.println("VeggiePizza"); } } class NYStyleVeggiePizza extends Pizza { public NYStyleVeggiePizza() { name = "NY Style sauce and Cheese Pizza"; dough = "Thin Crust Dough"; sauce = "Marinara Sauce"; toppings.add("Grated VeggiePizza Cheese"); } } class ChicagoStyleVeggiePizza extends Pizza { public ChicagoStyleVeggiePizza() { name = "Chicago StyleDeep Dish Cheese Pizza"; dough = "Extra Thick Crust Dough"; sauce = "Plum Tomato Sauce"; toppings.add("Shredded Veggie Cheese"); } public void cut() { System.out.println("Cutting the pizza into square slices"); } } class CaliforniaStyleVeggiePizza extends Pizza { public CaliforniaStyleVeggiePizza() { name = "California Style sauce and Cheese Pizza"; dough = "Thin Crust Dough"; sauce = "Marinara Sauce"; toppings.add("Grated Veggie Cheese"); } } public class PizzaTestDrive { public static void main(String[] args) { PizzaStore nyStore = new NYPizzaStore(); PizzaStore chicagoStore = new ChicagoPizzaStore(); Pizza pizza = nyStore.orderPizza("cheese"); System.out.println("Ethan ordered a " + pizza.getName() + "\n"); pizza = chicagoStore.orderPizza("cheese"); System.out.println("Joel ordered a " + pizza.getName() + "\n"); } } public class SimplePizzaFactory { public Pizza createPizza(String type) { Pizza pizza = null; if (type.equals("cheese")) { pizza = new CheesePizza(); }else if(type.equals("pepperoni")){ pizza=new PepperoniPizza(); }else if(type.equals("clam")){ pizza=new ClamPizza(); }else if(type.equals("veggie")){ pizza=new VeggiePizza(); } return pizza; } }
发表评论
-
Iterator patten 读书笔记
2008-04-10 18:07 1033提供 一种方法 顺序访问 一个聚和 对象中的各个元素,而又不暴 ... -
模版模式 读书笔记
2008-04-10 18:04 1710在一个方法中定义一个算法的骨架,而将一些步骤延迟到子类中。模版 ... -
Facade patten 读书笔记
2008-04-10 18:03 959提供了一个统一的接口,用来访问子系统中的一群接口。外观定义了一 ... -
Adapter patten 读书笔记
2008-04-10 18:01 927将一个类的接口,转换成客户期待的另一个接口。适配器让原本接口不 ... -
command patten 读书笔记
2008-04-10 17:56 8731 。命令模式将发出请求的对象和执行请求的对象解耦。 2。在被 ... -
单例模式 读书笔记
2008-04-07 18:44 884确保一个类只有一个实 ... -
抽象工厂模式读书笔记
2008-04-07 18:39 949提供一个接口,用于创建相关或依赖对象的家族,而不需要明确指定具 ... -
装饰者模式 读书笔记
2008-04-03 14:25 2106package pattern; public clas ... -
观察者模式(读书笔记)
2008-04-01 18:33 1078观察者模式定义了对象之间的一对多依赖,这样一来当一个对象改变状 ... -
Head First Design Patterns 读后感3-策略模式
2008-04-01 18:32 1305策略模式-定义了算法族,分别封装起来,让他们之间可以相互替换, ... -
Head First Design Patterns 读后感2 设计原则
2008-03-31 13:47 11351。软件开发中唯一一个不变的是 变化。大千世界,千奇百怪,行行 ... -
Head First Design Patterns 读后感1
2008-03-31 13:46 1387如何让大脑把记得更深刻 1。慢点,你理解的越多,记得月少 2。 ... -
proxy state 读书笔记
2008-03-28 18:35 1668定义:为另一个对象提供一个替身或者战位符以范围这个对象。 要点 ... -
阅读不懂,图书之过——《大话设计模式》创作历程 (转载)
2008-03-28 11:41 1091写这本书的确是个意外,因为在之前,我和所有的做技术的朋友一样, ... -
state patten 读书笔记
2008-03-25 14:53 1183允许对象在内部状态改变时改变它的行为,对象看起来好像修改了它的 ... -
组合模式 读书笔记
2008-03-24 15:12 1260允许你将对象组合成树形结构来表现“整体/部分”层次结构。组合能 ...
相关推荐
《智能制造之路-数字化工厂》读书笔记.pdf《智能制造之路-数字化工厂》读书笔记.pdf
《智能制造之路-数字化工厂》读书笔记.docx《智能制造之路-数字化工厂》读书笔记.docx
《智能制造之路:数字化工厂》读书笔记模板.pptx
本人学习中整理的读书笔记,适合想要入行的同学了解数据中台做什么?适合数据分析、产品经理转岗做数据产品的同学阅读。笔记分四部分。 第一部分:介绍什么是数据中台;数据中台建设与架构;评估与选择 第二部分:...
本人学习中整理的读书笔记,适合想要入行的同学了解数据中台做什么?适合数据分析、产品经理转岗做数据产品的同学阅读。笔记分四部分。 第一部分:介绍什么是数据中台;数据中台建设与架构;评估与选择 第二部分:...
本人学习中整理的读书笔记,适合想要入行的同学了解数据中台做什么?适合数据分析、产品经理转岗做数据产品的同学阅读。笔记分四部分。 第一部分:介绍什么是数据中台;数据中台建设与架构;评估与选择 第二部分:...
Android源码设计模式解析与实战读书笔记源代码 说明: 包名factorypattern.normal表示的是工厂方法模式的普通用法 包名factorypattern.practices表示的是工厂方法模式的常用 包名observerpattern表示的是观察者模式...
loveincode's notes 学习工作中的一些记录,收藏。 操作系统 , 编译原理 , 计算机网络 , 互联网协议... 常用数据结构与算法 Java 实现 数据结构 与 排序算法 ...读书笔记 Effective Java , HTTP权威指南 , Java
这是一套《人性的弱点》读书分享PPT,共27页; PPT模板封面使用了书籍背景图片,中间放置带有阴影的白色矩形卡片,填写《人性的...关键词:《人性的弱点》读书分享PPT下载,《人性的弱点》读书笔记PPT下载,.PPTX格式
由于才疏学浅,我不得不将《Javascript 高级程序设计》中的部分内容摘抄过来,这些同时也算是我的读书笔记吧。由于 Javascript 面向对象机制及其的重要,而且内容非常的繁多,在这里就分篇章逐个介绍。 使用对象首先...
[ReadingNotes(读书笔记)] [Project(项目)] 第六部分 [InterviewExperience(面试经验)] 有任何问题欢迎联系: 欢迎关注我的知乎账号: 微信公众号: 幼稚园老大哥 微博账号: 已同步到 拒绝任何形式的商业用途。
Essential .NET 读书笔记 [第一部分] NET FrameWork的Collections支持 .NET的反射在软件设计上的应用 关于跨程序集的反射 实现C#和VB.net之间的相互转换 深入剖析ASP.NET组件设计]一书第三章关于ASP.NET运行原理讲述...