C#简单工厂模式(学习Learning hard讲解笔记)
2024-09-21 12:42:59
原味地址http://www.cnblogs.com/zhili/p/SimpleFactory.html
简单工厂模式通俗的理解就是用户与工厂的关系,用户用的东西,工厂来生成,责任明确。
就像大神展示的例子,小弟自己敲了一遍。
class Program
{
static void Main(string[] args)
{
//点菜
//点个西红柿
Food food = FoodFactory.GetFood("Tomato");
food.Print(); Thread.Sleep(5000); Food food1 = FoodFactory.GetFood("egg");
food1.Print(); Console.Read(); }
} /// <summary>
/// 抽象类
/// </summary>
public abstract class Food
{
public abstract void Print();
} //西红柿
public class Tomato:Food
{
public override void Print()
{
Console.WriteLine("Tomato");
}
} //鸡蛋
public class Egg : Food
{
public override void Print()
{
Console.WriteLine("egg");
}
} //工厂类
public class FoodFactory
{
public static Food GetFood(string type)
{
Food food = null;
if (type == "Tomato")
{
food = new Tomato();
}
else if (type == "egg")
{
food = new Egg();
} return food;
}
}
工厂生产西红柿和鸡蛋,用户吃的时候可以选择鸡蛋或者是西红柿,但是,如果用户想吃西瓜,工厂就需要增加生产了,这是简单工厂模式的限制。个人觉得,工厂模式比较适用于工厂类创建的对象比较少时用。
最新文章
- 【GOF23设计模式】观察者模式
- BestCoder27 1001.Jump and Jump... (hdu 5162) 解题报告
- Maven中手动引用第三方jar包
- bootstrap-datepicker 日期格式设置
- 批量建立EXCHANGE邮件帐号建立三部曲
- 我最喜欢的visual studio 2013的新特性
- querydsl的好处
- 纯JavaScript实现HTML5 Canvas六种特效滤镜
- WCF技术剖析之二十七: 如何将一个服务发布成WSDL[基于HTTP-GET的实现](提供模拟程序)
- cleanMyMac
- 前端js,后台python实现RSA非对称加密
- JS前端调用后台方法
- unix时间转换为datetime\datetime转换为unixtime
- SpringBoot 配置 Servlet、Filter、Listener
- JS中的continue,break,return的区别
- Best Cow Fences POJ - 2018 (二分)
- Codeforces 1090A - Company Merging - [签到水题][2018-2019 Russia Open High School Programming Contest Problem A]
- Java EE之Hibernate异常总结【2】Field &#39;id&#39; doesn&#39;t have a default value
- mui框架(一)
- .NET下获取应用程序目录的一些方法
热门文章
- 基于unoconv的在线office预览
- webpack快速入门——实战技巧:开发和生产并行设置
- [Dart]语法基础
- 1. Python中如何使用其他语言?(python的胶水作用,python又叫胶水语言)
- Python爬虫之Cookie和Session
- maven安装以及eclipse配置maven
- 验证resneXt,densenet,mobilenet和SENet的特色结构
- node 利用http和cheerio编写简易爬虫
- OAuth 2.0 - Authorization Code授权方式详解
- MySQL权限管理(五)