- 浏览: 479398 次
- 性别:
- 来自: 上海
文章分类
最新评论
-
gapper:
多谢!!!
软件项目解决方案模板 -
lxyizy521:
感谢你无私的分享,正头疼文档的事情呢。
软件项目解决方案模板 -
flyisland:
不错的资料收集的心得,多谢分享!
如何从小工到专家——Dreyfus模型应用 -
a254124185:
Java编码规范及实践 -
clj2008tom:
LZ好久没更新了,呵呵
graphviz 在redhat as4 下的安装
自己CSDN blog 上回收来的,以后都集中到这里了。
参考资料
《java与模式》
上面那本书上的例子举的是园丁和果园的例子,学习设计模式最好在生活中自己找个例子实践一下,下面是我自己的一个例子,是讲快餐店的例子,快餐店提供很多食物,比如面条,米饭,面包。首先定义了一个Food接口,然后这些食物都从它来继承,定义了一个大厨他包办所有食物的制作工作,这就是我所理解的简单工厂模式的概念,下面是源代码:
using System; namespace SimpleFactoryPattern { /// <summary> /// 简单工厂模式示例 /// </summary> class SimpleFactoryPattern { //定义Food接口 public interface Food { //烹饪 void Cook(); //卖出 void Sell(); } //Noodle public class Noodle:Food { public Noodle() { Console.WriteLine("\nThe Noodle is made.."); } private int price; //面条Noodle的Cook方法接口实现 public void Cook() { Console.WriteLine("\nNoodle is cooking..."); } //面条Noodle的Sell方法接口实现 public void Sell() { Console.WriteLine("\nNoodle has been sold..."); } public int Price { get{return this.price;} set{price=value;} } } //Rice public class Rice:Food { public Rice() { Console.WriteLine("\nThe Rice is made .."); } private int price; public void Cook() { Console.WriteLine("\nRice is cooking..."); } public void Sell() { Console.WriteLine("\nRice has been sold..."); } public int Price { get{return this.price;} set{price=value;} } } //Bread public class Bread:Food { public Bread() { Console.WriteLine("\nThe Bread is made...."); } private int price; public void Cook() { Console.WriteLine("\nBread is cooking..."); } public void Sell() { Console.WriteLine("\nBread has been sold..."); } public int Price { get{return this.price;} set{price=value;} } } //定义大厨,他包办这个快餐店里的所有Food,包括面条,面包和米饭 class Chef { public static Food MakeFood(string foodName) { try { switch(foodName) { case "noodle": return new Noodle(); case "rice":return new Rice(); case "bread":return new Bread(); default:throw new BadFoodException("Bad food request!"); } } catch(BadFoodException e) { throw e; } } } //异常类,该餐馆没有的食品 class BadFoodException: System.Exception { public BadFoodException(string strMsg) { Console.WriteLine(strMsg); } } /// <summary> /// 应用程序的主入口点。 /// </summary> [STAThread] static void Main(string[] args) { Food food=Chef.MakeFood("bread"); food.Cook(); food.Sell(); Console.ReadLine(); } } }
发表评论
-
如何在公司中引入新思路——fearless change
2009-09-28 00:21 1377我前面的博客也提到,在一个公司中,引入一个新的想法,获得成功并 ... -
Code Review Patterns
2009-06-23 09:57 1478整理了一下Code Review中 ... -
团队分析与设计(TeamAnalysisDesignPattern)
2009-04-11 14:31 14241)Problem 问题域比较复杂,团队中没有人能 ... -
极限会议模式(ExtremeMeeting)
2009-03-17 13:38 1855名字自己随便取的,如有雷同,纯属巧合。 1. Proble ... -
5W问题分析模式
2009-03-10 08:41 01. Problem 当遇到问题,手足无措时。 2. So ... -
影响分析模式(InfluenceAnalysisPattern)
2009-03-06 23:58 12271. Problem 解决问题,进行决策和面对改变时, ... -
全局目标导向模式(GlobalTargetOrientedPattern)
2009-03-05 23:08 9361. Problem 一个团队在做事情的过 ... -
通讯录模式(AddressListPattern)
2009-03-02 22:10 1494模式是实践的抽象,今天我来总结一下通讯录模式。 1. Pr ... -
导航者模式(NavigatorPattern)
2009-02-28 10:40 01. Problem 人是容易犯错的,而且但线条的。 ... -
Double Dispatch(双分派)
2009-02-04 11:24 2465参考资料: http://en.wikipedia ... -
有人的地方就有江湖
2009-01-30 08:54 2298有人的地方就有 ... -
设计模式快速参考-参观者模式
2008-12-06 07:27 1644参观者模式主要对一组固定结构的对象进行访问,一般和组合模式一起 ... -
设计模式快速参考-模板方法模式
2008-12-06 07:21 1066abstract class TravelTemplate ... -
设计模式快速参考-策略模式
2008-12-06 07:17 1174//密钥对生成接口 interface IKeyPairGen ... -
设计模式快速参考-观察者模式
2008-12-06 07:13 1281//主题,这里是快餐店 class SnackShop{ ... -
设计模式快速参考-命令模式
2008-12-06 07:10 1279interface ICommand{ void e ... -
设计模式快速参考-代理模式
2008-12-06 07:07 1213class FileDownloader( publ ... -
设计模式快速参考-外观模式
2008-12-06 07:03 1049为一组类提供简单的外部接口,使外部调用者不需要和所 ... -
设计模式快速参考-组合模式
2008-12-06 07:00 1048abstract class Hardware{ } cla ... -
设计模式快速参考-适配器模式
2008-12-06 06:49 1243interface Powerable{ 110v ...
相关推荐
本资料来源于吕震宇博客,欢迎访问 ...经过整理,方便大家阅读。...C#设计模式(4)-Simple Factory Pattern C#设计模式(3) - 设计原则(2) C#设计模式(2) - 设计原则(1) C#设计模式(1) - 面向对象基本概念复习
JAVA设计模式(01):创建型-工厂模式【简单工厂模式】(Simple Factory)
赠送jar包:cxf-rt-frontend-simple-3.0.1.jar; 赠送原API文档:cxf-rt-frontend-simple-3.0.1-javadoc.jar; 赠送源代码:cxf-rt-frontend-simple-3.0.1-sources.jar; 赠送Maven依赖信息文件:cxf-rt-frontend-...
简单工厂模式实际上不属于23个GoF模式,但它可以作为GoF的工厂方法模式(Factory Method)的一个引导。 UML: <<Interface>> ConcreteProduct Creator Product <------ --------------- <----- ----------...
C#设计模式(4)-Simple Factory Pattern 24 一、 简单工厂(Simple Factory)模式 24 二、 Simple Factory模式角色与结构: 24 三、 程序举例: 25 四、 Simple Factory模式演化 27 五、 优点与缺点: 29 C#设计...
Simple Factory Pattern 工厂角色:是简单工厂的核心,他负责实现创建所有实例内部逻辑.工厂类可以被外界直接调用,创建所需的产品对象 抽象产品角色:是简单工厂模式所创建的所有对象父类,他负责描述所有实例所共有的...
C#设计模式(4)-Simple Factory Pattern 一、 简单工厂(Simple Factory)模式 二、 Simple Factory模式角色与结构: 三、 程序举例: 四、 Simple Factory模式演化 五、 优点与缺点: C#设计模式(5)-...
java 设计模式 Facade外观模式 Simple Factory 简单工厂模式,代码有点罗嗦,不过可移植性很强
Simple Factory模式: 定义创建对象的接口,并封装对象的创建。 一般情况下,我们为了提高内聚和松耦合,经常会使用多态来处理一些问题。抽象出一些类的公共接口作为抽象基类或者接口。这样的话,我们将会面临一个...
C#简单工厂模式在项目需求中的应用Demo,适合新手。
本代码利用简单工厂模式来编写一个简单的计算器程序。重点在意设计模式。程序扩展性强。
java工厂模式SimpleFactory 一个简单的java Bean工厂模式SimpleFactory
perl-HTTP-Server-Simple,perl的扩展包,perl的扩展包
基于java的开发源码-命令行解析器 JOpt Simple.zip 基于java的开发源码-命令行解析器 JOpt Simple.zip 基于java的开发源码-命令行解析器 JOpt Simple.zip 基于java的开发源码-命令行解析器 JOpt Simple.zip 基于java...
cxf中会出现编码问题的cxf-rt-frontend-simple-3.1.13.jar的源码
High-speed serial IO made simple 中文版
SimpleFactory.rar QQ:292258449
Java设计模式之一简单工厂模式(SimpleFactory)源码
简单工厂(Simple Factory)模式 ③设计模式的征途-03。工厂方法(Factory Method)模式 ④设计模式的征途-04。抽象工厂(Abstract Factory)模式 ⑤设计模式的征途-05。原型(原型)模式 ⑥设计模式的征途-06。建造...
1. 简单工厂模式(Simple Factory) 2. 工厂方法模式(Factory Method) 3. 抽象工厂模式(Abstract Factory) 这三种模式从上到下逐步抽象,并且更具一般性。还有一种分类法,就是将简单工厂模式看为工厂方法模式的一...