1.创建抽象类

    public abstract class Connect{public abstract void ConnectString();}

2.继承抽象类的实体类

    public class SqlConnect : Connect{public override void ConnectString(){Console.WriteLine("SqlServer Connect Strings");}}public class MySqlConnect : Connect{public override void ConnectString(){Console.WriteLine("MySql Connect Strings");}}

3.创建抽象工厂类

    public abstract class Factory{public abstract Connect CreatConnect();}

4.创建两个产品类所对应的实体工厂类

    public class SqlFactory : Factory{public override Connect CreatConnect(){return new SqlConnect();}}public class MySqlFactory : Factory{public override Connect CreatConnect(){return new MySqlConnect();}}

5.客户端调用

        static void Main(string[] args){Factory sqlFactory = new SqlFactory();Factory mysqlFactory = new MySqlFactory();Connect sqlConnect = new SqlConnect();sqlConnect.ConnectString();Connect mysqlConnect = new MySqlConnect();mysqlConnect.ConnectString();Console.Read();}

如果新有其他数据库的连接,比如oracle,可以另外新建 oracle 实体类 和 oracle工厂 实体类,不用修改已有的类.

开放扩展,封闭修改.

转载于:https://www.cnblogs.com/yizhituoxie/p/7845522.html

设计模式三(工厂方法模式)学习笔记相关推荐

  1. 设计模式之工厂方法模式学习笔记

    定义 定义一个用于创建对象的接口,让子类去决定是实现哪个类.工厂方法使类的实例化,延迟到了子类. 结构图 角色拆解分析: 1.Product:抽象产品类 2.ConcrereProduct:具体产品类 ...

  2. python类是实例的工厂_Python设计模式之工厂方法模式实例详解

    本文实例讲述了Python设计模式之工厂方法模式.分享给大家供大家参考,具体如下: 工厂方法模式(Factory Method Pattern):定义一个用于创建对象的接口,让子类决定实例化哪一个类, ...

  3. C#设计模式(3)——工厂方法模式

    一.引言 在简单工厂模式中讲到简单工厂模式的缺点,有一点是--简单工厂模式系统难以扩展,一旦添加新产品就不得不修改简单工厂方法,这样就会造成简单工厂的实现逻辑过于复杂,然而本专题介绍的工厂方法模式可以 ...

  4. 设计模式之工厂方法模式(创建型)

    一.模式定义 工厂方法模式:又称工厂模式,也叫虚拟构造器模式,属于构建型设计模式,工厂方法模式是在简单工厂模式上进行拓展,生产产品的过程由具体工厂类实现,基类只实现接口,这使得工厂方法模式可以在不修改 ...

  5. 设计模式:工厂方法模式(Factory method)

    设计模式:工厂方法模式(Factory method) 一.问题 在前一章中通过披萨的实例介绍了简单工厂模式.在披萨实例中,如果我想根据地域的不同生产出不同口味的披萨,如纽约口味披萨,芝加哥口味披萨. ...

  6. 设计模式复习-工厂方法模式

     设计模式复习-工厂方法模式 相对于简单工厂,工厂方法是把算法类的实例化延迟到了调用者那去做,调用者根据自己的需要,自己实例化相关的工厂并且生产相关算法.这么做是因为简单工厂是不满足OCP的,因为如果 ...

  7. 设计模式之工厂方法模式应用例题

    设计模式之工厂方法模式应用例题 题目描述 类结构图及相关说明 程序代码 运行结果 题目描述 现需要设计一个程序来读取多种不同类型的图片格式,针对每一种图片格式都设计一个图片读取器(ImageReade ...

  8. 【设计模式】工厂方法模式(C#)

    [设计模式]工厂方法模式 1.概述 针对简单工厂中的缺点,使用工厂方法模式就可以完美的解决,完全遵循开闭原则. 定义一个用于创建对象的接口,让子类决定实例化哪个产品类对象.工厂方法使一个产品类的实例化 ...

  9. 一文叫你弄懂Java设计模式之工厂方法模式:图解+日志记录器代码实例

    文章目录 详解Java设计模式之工厂方法模式 案例引入工厂方法模式 工厂方法模式 定义 案例分析 UML类图分析 代码分析 工厂方法的重载 工厂方法的隐藏 模式优点 模式缺点 模式适用环境 详解Jav ...

最新文章

  1. 顶会论文9篇,又斩获百度奖学金!哈工大NLP“新生代”正崭露头角
  2. AtCoder Beginner Contest 202 D - aab aba baa(组合计数,字典序)
  3. win10系统预览体验计划错误代码0x800bfa19怎么办
  4. node.js 之 socket.io
  5. Hive 求top N
  6. python bottle部署_如何使用python-Bottle框架创建REST API应用程序,以及如何在apache服务器上部署restapi应用程序?...
  7. 一个存储过程,折腾了我半天
  8. 元宇宙里“倒腾狗”,预示“下一代互联网”要来了?
  9. Deepin_wine安装超星阅读器及解决乱码问题
  10. Classic Shell不起作用(失效)的解决
  11. 思维导图:从Xmind到docsify博客
  12. sincerit 小乐乐切割方块(规律+思考)
  13. Python3 juypterlab pyecharts 饼图制作
  14. uniapp使用ucharts图表及问题汇总
  15. 分支-12. 计算火车运行时间
  16. 利用python进行AdaBoost模型预测
  17. 分享到新浪微博/QQ空间/开心网/人人网/豆瓣网/QQ书签/百度搜藏/美味书签 代码...
  18. 诺诺助手提示正在连接服务器,诺诺导账助手3.0操作说明.pdf
  19. 计算机环境安全容器服务未启动怎么解决,音频服务未运行|音频服务未启动 - 音频服务未运行的解决办法 - 安全专题...
  20. 金融网站知识图谱问答系统:自学Python第一周

热门文章

  1. jquery实现复选框checkbox全选,取消全选
  2. 利用redis-sentinel+keepalived实现redis高可用
  3. mysql从5.1.63升级到5.6.20出现的问题
  4. 【Qt】qt库结构及示例
  5. #region的快捷键+++从一个页面中弹出一个新窗口,当新窗口关闭时刷新原窗口!...
  6. [原创]网银在线chinabank安全漏洞之“不完善的开发软件包”
  7. java 替换 rn_RN热更新之Android篇
  8. PyCharm取消启动时自动加载项目
  9. mysql 不在另一个表中_MySQL选择查询从表中选择不在另一个表中的行?
  10. aspose 转pdf表格大小乱了_自己写了一个小工具类:pdf转word,没有页数和大小限制,保真!...