C#设计模式之---简单工厂模式

简单工厂模式(Simple Factory Pattern)

简单工厂模式定义一个类来负责创建其他类的实例,被创建的实例通常都具有共同的父类。因为在简单工厂模式中用于创建实例的方法是静态(static)方法,又叫做静态工厂方法(Static Factory Method)模式,简单工厂模式是属于创建型模式。

复制代码
using System;
namespace ConsoleApplication
{
    //一般每个接口或类都写在单独的.cs文件中
    //本示例为了执行查看方便才写在一起
    public interface Database
    {
        void Delete();
        void Insert();
    }
    //Sqlserver的增删
    public class Sqlserver : Database
    {
        public void Delete()
        {
            Console.WriteLine("delete data from sqlserver");
        }
        public void Insert()
        {
            Console.WriteLine("insert data to sqlserver");
        }
    }
    //Mysql的增删
    public class Mysql : Database
    {
        public void Delete()
        {
            Console.WriteLine("delete data from Mysql");
        }
        public void Insert()
        {
            Console.WriteLine("insert data to Mysql");
        }
    }
    public static class IFactory
    {
        //根据需求创建
        public static Database CreateDatabase(string dbType)
        {
            Database db = null;
            switch (dbType)
            {
                case "Sqlserver":
                    db = new Sqlserver();
                    break;
                case "Mysql":
                    db = new Mysql();
                    break;
                default:
                    break;
            }
            return db;
        }
    }
    class Program
    {
        static void Main(string[] args)
        {
            Database db1 = IFactory.CreateDatabase("Sqlserver");
            db1.Delete();
            db1.Insert();
            Database db2 = IFactory.CreateDatabase("Mysql");
            db2.Delete();
            db2.Insert();
            Console.ReadKey();
            Console.ReadKey();
        }
    }
}
相关推荐
繁华似锦respect2 小时前
C++ 设计模式之工厂模式详细介绍
java·linux·c++·网络协议·设计模式
想要成为祖国的花朵2 小时前
基于多设计模式的抽奖系统__测试报告
java·selenium·测试工具·jmeter·设计模式·测试用例·安全性测试
重铸码农荣光5 小时前
JavaScript 面向对象编程:从字面量到原型继承的深度探索
前端·javascript·设计模式
L***d6707 小时前
Spring Boot 经典九设计模式全览
java·spring boot·设计模式
未可知7777 小时前
软件设计师(下午题2)、UML与设计模式
算法·设计模式·职场和发展·uml
繁华似锦respect7 小时前
C++ 设计模式之单例模式详细介绍
服务器·开发语言·c++·windows·visualstudio·单例模式·设计模式
xunyan62347 小时前
面向对象(下)-设计模式与单例设计模式
java·单例模式·设计模式
ZHE|张恒15 小时前
设计模式(十四)模板方法模式 — 定义流程骨架,把步骤差异留给子类
设计模式·模板方法模式
Codebee16 小时前
深度解析AI编程技术:从原理到实践,手把手教你落地
人工智能·设计模式·开源
执笔论英雄16 小时前
【RL】python协程
java·网络·人工智能·python·设计模式