设计模式之简单工厂SimpleFactory的实现

internal interface Chart
{
void Display();
}
internal class LineChart : Chart
{
public LineChart() { Console.WriteLine("创建折线图"); }
public void Display()
{
Console.WriteLine("显示折线图");
}
}
internal class PieChart : Chart
{
public PieChart() { Console.WriteLine("创建饼状图"); }
public void Display()
{
Console.WriteLine("显示饼状图");
}
}
internal class HistogramChart:Chart
{
public HistogramChart() { Console.WriteLine("创建柱状图"); }
public void Display()
{
Console.WriteLine("显示柱状图");
}
}
internal class SimpleFactory
{
public Chart GetChart(string type)
{
Chart chart = null;
switch (type)
{
case "histogram":
chart= new HistogramChart();
break;
case "pie":
chart =new PieChart();
break;
case "line":
chart = new LineChart();
break;
default:
break;
}
return chart;
}
}
internal class Program
{
static void Main(string[] args)
{
Chart chart;
SimpleFactory factory = new SimpleFactory();
chart = factory.GetChart("pie");
chart.Display();
Console.Read();
}
}

设计模式之简单工厂SimpleFactory的实现的更多相关文章
- 设计模式之简单工厂SimpleFactory的实现(配置文件)
<?xml version="1.0" encoding="utf-8" ?> <configuration> <appSetti ...
- PHP设计模式:简单工厂
示例代码详见https://github.com/52fhy/design_patterns 简单工厂 简单工厂模式的工厂类一般是使用静态方法,通过接收的参数的不同来返回不同的对象实例. 也就是使用的 ...
- C#设计模式(2)-简单工厂模式
引言 上一遍中介绍了设计模式中的单例模式-C#设计模式(1)-单例模式,本篇将介绍简单工厂模式,也是比较容易理解的一种模式: 简单工厂模式简介 什么是简单工厂模式? 定义一个工厂类,它可以根据参数的不 ...
- C#设计模式(2)——简单工厂模式(转)
C#设计模式(2)——简单工厂模式 一.引言 这个系列也是自己对设计模式的一些学习笔记,希望对一些初学设计模式的人有所帮助的,在上一个专题中介绍了单例模式,在这个专题中继续为大家介绍一个比较容易理 ...
- Jquery如何序列化form表单数据为JSON对象 C# ADO.NET中设置Like模糊查询的参数 从客户端出现小于等于公式符号引发检测到有潜在危险的Request.Form 值 jquery调用iframe里面的方法 Js根据Ip地址自动判断是哪个城市 【我们一起写框架】MVVM的WPF框架(三)—数据控件 设计模式之简单工厂模式(C#语言描述)
jquery提供的serialize方法能够实现. $("#searchForm").serialize();但是,观察输出的信息,发现serialize()方法做的是将表单中的数 ...
- 设计模式之简单工厂模式(Simple Factory)
原文地址:http://www.cnblogs.com/BeyondAnyTime/archive/2012/07/06/2579100.html 今天呢,要学习的设计模式是“简单工厂模式”,这是一个 ...
- iOS设计模式 - (3)简单工厂模式
iOS设计模式 - (3)简单工厂模式 by Colin丶 转载请注明出处: http://blog.csdn.net/hitwhylz/article/ ...
- 设计模式之简单工厂模式Simple Factory(四创建型)
工厂模式简介. 工厂模式专门负责将大量有共同接口的类实例化 工厂模式可以动态决定将哪一个类实例化,不必事先知道每次要实例化哪一个类. 工厂模式有三种形态: 1.简单工厂模式Simple Factory ...
- C++实现设计模式之 — 简单工厂模式
作者:jostree 转载请注明出处 http://www.cnblogs.com/jostree/p/4251756.html 所谓简单工厂模式,是一种实例化对象的方式,只要输入需要实例化对象的名字 ...
随机推荐
- LeetCode-011-盛最多水的容器
盛最多水的容器 题目描述:给你 n 个非负整数 a1,a2,...,an,每个数代表坐标中的一个点 (i, ai) .在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, ...
- 【阅读SpringMVC源码】手把手带你debug验证SpringMVC执行流程
✿ 阅读源码思路: 先跳过非重点,深入每个方法,进入的时候可以把整个可以理一下方法的执行步骤理一下,也可以,理到某一步,继续深入,回来后,接着理清除下面的步骤. ✿ 阅读本文的准备工作,预习一下Spr ...
- PHP 的网站主要攻击方式有哪些?
1.命令注入(Command Injection)2.eval 注入(Eval Injection)3.客户端脚本攻击(Script Insertion)4.跨网站脚本攻击(Cross Site Sc ...
- 图解|用好MySQL索引,你需要知道的一些事情
我是蝉沐风. 这一篇文章来聊一聊如何用好MySQL索引. 为了更好地进行解释,我创建了一个存储引擎为InnoDB的表user_innodb,并批量初始化了500W+条数据.包含主键id.姓名字段(na ...
- setState同步异步场景
setState同步异步场景 React通过this.state来访问state,通过this.setState()方法来更新state,当this.setState()方法被调用的时候,React会 ...
- 自动化运维之SaltStack初探
1.1.基础环境 linux-node1(master服务端) 192.168.31.46 CentOS 6.6 X86_64 linux-node2(minion客户端) 192.168.31.47 ...
- 解决HTML中文乱码问题
将HTML代码复制到一个新建的记事本 然后在记事本里面的操作 另存为 选择utf-8编码 新的那个html文本打开 中文已显示正常
- sqlmap之waf绕过
#一点补充 在老版本的安全狗中,可通过构造payload: http://xx.xx.xx.xx/sqli-labs/Less-2/index.php/x.txt?id=1 and 1=1 可通过in ...
- github新手使用指南
常用命令: Git 速查表(摘自 AI有道) 一.常见命令 git init : 初始化 git 仓库,即将一个文件夹初始化为一个 git 仓库.具体的操作是创建一个 .git 隐藏文件夹 git ...
- 最长公共子序列(LCS动态规划)?
// dp[i][j] 计算去最大长度,记住口诀:相等左上角加一,不等取上或左最大值function LCS(str1, str2){ var rows = str1.split(&q ...