简单工厂模式(详细)(举例饮料)
饮料案例:
饮料类(父类):
public class Drink
{
//虚方法
public virtual void Driking() {
}
}
可乐类(继承父类饮料类)
public class Cola:Drink
{
//重写父类的Driking()方法
public override void Driking()
{
Console.WriteLine("Cola");
}
}
雪碧类(继承父类饮料类)
public class Sprite:Drink
{
//重写父类的Driking()方法
public override void Driking()
{
Console.WriteLine("Sprite");
}
}
饮料工厂类(factory)
class DrinkFactory
{
public static Drink Init(string type) {
Drink drink = null;
switch(type){
case "可乐":
drink = new Cola();
break;
case "雪碧":
drink = new Sprite();
break;
}
return drink;
}
}
Main方法
class Program {
static void Main(string[] args) {
Console.WriteLine("请输入你要喝的饮料");
string type=Console.ReadLine();
Drink drink=DrinkFactory.Init(type);
drink.Driking();
Console.ReadKey();
}
}
转载于:https://www.cnblogs.com/yfyfyff/p/7286621.html
简单工厂模式(详细)(举例饮料)相关推荐
- JavaScript设计模式(一)-- 简单工厂模式
定义 简单工厂模式:又叫静态工厂方法,由一个工厂对象决定创建某一种产品对象类的实例.主要用来创建同一类对象. 如果类太多,就提供一个 对于多个类,在每次创建时还要找相对应的类.为此,直接封装在一个函数 ...
- 工厂模式--简单工厂模式--抽象工厂模式
工厂模式 作用:实现创建者与调用者的分离 简单工厂模式.工厂方法模式.抽象工厂模式,都是属于创建型设计模式.严格上来说,简单工厂模式不属于23设计模式之一,因为它违背了开闭原则. ========== ...
- 设计模式之工厂类模式总结对比、简单工厂模式、工厂方法模式、抽象工厂模式、带反射的工厂模式、例子代码分析、最详细
1. 题目 假设某公司同时用SqlServer.MySql数据库,即会切换两数据库(不同数据库的sql语句有些许差异),同时,两数据库里均有对Users.Departments表的操作(sql代码不一 ...
- 设计模式Part3——简单工厂模式
一.创建型模式 软件在运行时,类将实例化为对象,并由对象协作完成各项业务功能. 创建型模式(Creational Pattern)关注对象的创建过程,是最常用的设计模式. 创建型模式对类的实例化过程进 ...
- 设计模式之简单工厂模式
一.概述 工厂模式具体包括了简单工厂.工厂方法.抽象工厂,它们是按照从简单到复杂的顺序排列的,属于设计模式中的创建型,其中简单工厂并不属于GOF的23中模式. 但是它是理解其它的工厂模式的一个很好 ...
- 设计模式 之美 -- 简单工厂模式
文章目录 1. 解决问题 2. 应用场景 3. 实现 C++实现: C语言实现 4. 缺点 1. 解决问题 举例如下: 我们实现一个卖衣服的功能,衣服的种类有很多:帽子,裤子,T恤... 每卖一种衣服 ...
- 《JAVA与模式》之简单工厂模式
在阎宏博士的<JAVA与模式>一书中开头是这样描述简单工厂模式的:简单工厂模式是类的创建模式,又叫做静态工厂方法(Static Factory Method)模式.简单工厂模式是由一个工厂 ...
- 设计模式(四)简单工厂模式
首先,简单工厂模式不属于23中涉及模式,简单工厂一般分为:普通简单工厂.多方法简单工厂.静态方法简单工厂. 1.简单工厂模式简介 定义 简单工厂模式是由一个工厂对象决定创建出哪一种产品类的实例. 简单 ...
- 设计模式-简单工厂模式
在阎宏博士的<JAVA与模式>一书中开头是这样描述简单工厂模式的: 简单工厂模式是类的创建模式,又叫做静态工厂方法(Static Factory Method)模式.简单工厂模式是由一个工 ...
- Java使用简单工厂模式对面向接口编程模式的深度解耦实现
在Java和C#的编程世界里,并没有出现像C++那样的多脉继承,它们只支持单一的继承,或者多级继承,这一变化最大的影响,我觉得是大大的降低了编程的难度,因为没有了C++的多级多脉继承,所以接口出现了, ...
最新文章
- Mysql实现非程序控制读写分离
- 区块链死亡项目列表小程序:死亡硬币
- 那些陌生的C++关键字
- 做小程序费用太高?帮你选一个最省钱的方案
- dynamo python修改多个参数_40岁小白学了30天python发现,编程真的其乐无穷
- Java Collections工具类
- linux中断处理体系结构
- requestAnimationFrame()方法实现帧动画
- 【多媒体基础知识】 --- 什么是流媒体技术
- 继续理解socekt具体使用--2
- SCH自动标注器件号
- BeyondCompare4使用脚本,每月一次
- tomcat守护进程
- Vue3 到底哪里好?和React Hook对比有啥有优势?本文详解
- JavaScript / Summary of Interview Questions
- 以太网模块支持SCADA 软件通过三菱以太网协议连接
- 【深度学习】cs231n计算机视觉 SVM分类器
- 山东大学软件学院网络攻击与防范2022-2023林丰波100词详解
- Unity/c#鼠标右键控制相机围绕物体旋转/滚轮控制远近
- jsp页面动态显示本地时间
热门文章
- 怎么做网络营销在网站优化中能快速提升搜索引擎信任的方法!
- 网站优化不能忽视网站外链的作用
- android 4.2 桌面快捷方式,Android 添加桌面快捷方式操做
- php编写函数6,编写自己的PHP扩展函数
- java逐行读取文件数组_快速高效地在Java中逐行读取大型JSON文件的方法
- java 涂鸦_java 涂鸦画板
- 命令模式 java_JAVA中的命令模式实例教程
- 使用VAE、CNN encoder+孤立森林检测ssl加密异常流的初探——真是一个忧伤的故事!!!...
- influxdb入门——和mongodb一样可以动态增加字段
- python 让系统不识别转义字符 print的时候直接输出