[db:标题]

摘要:前言 上一篇文章写了如何使用RabbitMQ做个简单的发送邮件项目,然后评论也是比较多,也是准备去学习一下如何确保RabbitMQ的消息可靠性,但是由于时间原因,先来说说设计模式中的简单工厂模式吧! 在了解简单工厂模式之前,我们要知道C#是
前言 上一篇文章写了如何使用RabbitMQ做个简单的发送邮件项目,然后评论也是比较多,也是准备去学习一下如何确保RabbitMQ的消息可靠性,但是由于时间原因,先来说说设计模式中的简单工厂模式吧! 在了解简单工厂模式之前,我们要知道C#是一款面向对象的高级程序语言。它有3大特性,封装、继承、多态。 简述 工厂模式(Factory Pattern)是一种常用的设计模式,属于创建型模式,它提供了一种创建对象的最佳方式。在工厂模式中,我们创建对象时不会对客户端暴露创建逻辑,并且是通过使用一个共同的接口来指向新创建的对象。 工厂模式的核心是定义一个创建产品对象的工厂接口,将实际创建工作推迟到子类当中。这样客户端可以无需指定具体产品的类,只需通过工厂类即可得到所需的产品对象。 工厂模式主要分为三种类型:简单工厂模式(Simple Factory Pattern)、工厂方法模式(Factory Method Pattern)和抽象工厂模式(Abstract Factory Pattern)。 本文主要讲解简单工厂模式(Simple Factory Pattern)。 案例带入 下面使用C#控制台程序去写一个简易的计算器,实现加减乘除。如果我没学过设计模式,我会这么写: static void Main(string[] args) { Console.WriteLine("请输入数字A:"); string A = Console.ReadLine(); Console.WriteLine("请选择运算符号:(+、-、*、/):"); string op = Console.ReadLine(); Console.WriteLine("请输入数字B:"); string B = Console.ReadLine(); string result = ""; switch (op) { case "+": result = Convert.ToString(Convert.ToDouble(A) + Convert.ToDouble(B)); break; case "-": result = Convert.ToString(Convert.ToDouble(A) - Convert.ToDouble(B)); break; case "*": result = Convert.ToString(Convert.ToDouble(A) * Convert.ToDouble(B)); break; case "/": result = Convert.ToString(Convert.ToDouble(A) / Convert.ToDouble(B)); break; default: Console.WriteLine("输入的运算符号有误!"); break; } Console.WriteLine("结果:" + result); } 上述代码乍一看没问题,实则隐藏了很多陷阱,比如: 变量命名不规范 除数为0怎么办 输入的不是数字怎么办 ...... 优化 我们用面向对象的思想进行优化,主要体现在:可维护、可复用、可扩展、灵活性几个方面。通过封装、继承、多态来降低程序的耦合度。 封装 我们可以将运算逻辑封装成一个方法去实现,让主方法减轻负担。
阅读全文