设计模式之简单工厂模式
来源:互联网 发布:淘宝发布宝贝放入仓库 编辑:程序博客网 时间:2024/05/21 11:31
博客沉寂了一段时间,主要是这段时间在玩古剑2,现在游戏即将通关,我想是时候开始学习新东西了。
今天给大家带来的是设计模式中简单工厂模式。
从设计模式的类型上来说,简单工厂模式是属于创建型模式。简单工厂模式是由一个工厂对象决定创建出哪一种产品类的实例。简单工厂模式的实质是由一个工厂类根据传入的参数,动态决定应该创建哪一个产品类(这些产品类继承自一个父类或接口)的实例。简单工厂模式主要有三种角色构成,分别是工厂类角色、抽象产品角色、具体产品角色。工厂类角色负责根据客户端传入的参数构造产品实例,抽象产品角色负责定义产品的公共父类或公共接口,具体产品角色负责定义具体的产品对象。下面我们以一个红绿灯的例子来学习简单工厂模式。
首先我们来构建抽象产品角色,定义一个Light类
/// <summary> /// 定义一个抽象类Light /// </summary> public abstract class Light { /// <summary> /// 抽象方法TurnOn /// </summary> public abstract void TurnOn(); /// <summary> /// 抽象方法TurnOff /// </summary> public abstract void TurnOff(); }接下来根据Light类分别创建两个具体的产品角色类GreenLigth、RedLight
class GreenLight:Light { public void TurnOn() { Console.WriteLine("GreenLight is turned on"); } public void TurnOff() { Console.WriteLine("GreenLight is turned off"); } }
public class RedLight:Light { public void TurnOn() { Console.WriteLine("RedLight is turned on"); } public void TurnOff() { Console.WriteLine("RedLight is turned off"); } }接下来,我们把具体的产品角色类和工厂角色类完成交互,构造一个LightCreator类:
public class LightCreator { public Light CreateLight(LightType Type) { Light Light = null; switch (Type) { case LightType.GreenLight: Light = new GreenLight(); break; case LightType.RedLight: Light = new RedLight(); break; } return Light; } }这样,我们就运用简单工厂模式设计了一个程序,我们只需要给工厂角色类传入一个参数,它就可以为我们生产出我们需要的产品了。当然,如果我们将生产产品的任务直接交给Light父类去完成,可不可以呢?答案是肯定的,因为这样相当于把工厂角色和抽象产品角色变成了一个角色。好了,第一篇设计模式的文章就是这样了,我会在后面的文章里继续写设计模式的文章的,欢迎大家指教!
- 设计模式 之简单工厂+ 工厂模式
- 设计模式之简单工厂设计模式
- 设计模式之简单工厂模式,工厂模式,策略模式
- 设计模式 之 简单工厂
- 设计模式之简单工厂
- 设计模式之简单工厂
- 设计模式之简单工厂
- 设计模式之简单工厂
- 设计模式之简单工厂
- 设计模式之简单工厂
- 设计模式之简单工厂
- 设计模式之简单工厂
- 设计模式之简单工厂.
- 设计模式之简单工厂
- 设计模式之简单工厂
- 设计模式之简单工厂
- 设计模式之简单工厂
- 设计模式之简单工厂
- java学习总结笔记(1):Tomcat服务器的一些基础配置
- Java软件开发修炼过程
- 用C#做一个截图工具
- 【整理】查看SVG图片,将SVG图片转换为PNG,JPG,TIF等方面的工具或软件
- Invalid number format for port number
- 设计模式之简单工厂模式
- SSL Programming Tutorial
- 开始接触unity3d
- 阿录帮帮忙—第四章—struts处理流程的介绍
- 2013 ACM-ICPC 亚洲区域赛 成都现场赛I 解题报告
- javascript 观察者模式实现
- 常见面试问题和回答技巧
- 最近正在解决的wince问题
- 802.11无线网络