标签:string code 赋值 工作 代码复用 修改 nbsp 作用 c#
一、简单工厂模式介绍:
简单工厂模式是属于创建型模式,又叫做静态工厂方法(Static Factory Method)模式。简单工厂模式是由一个工厂对象决定创建出哪一种产品类的实例。简单工厂模式是工厂模式家族中最简单实用的模式,可以理解为是不同工厂模式的一个特殊实现。
二、背景:
我们日常编程中,当使用new一个对象时,此时该类就依赖与这个对象,也就是他们之间的耦合度高,当需求变化时,我们不得不去修改此类的源码,此时我们可以运用简单工厂模式来解决这个问题。
三、情景例子:
现实生活中,我们买笔记本电脑基本都是去电器店去购买,我们想要什么品牌的只要和销售员说他们就会拿给我们,这就是现实生活中一个简单工厂的例子。所有的笔记本电器店都有,电器店相当于一个简单的工厂父类,每个笔记本品牌就是继承于他的子类,当我们需要买笔记本也就是相当于要new一个笔记本类时,我们就可以直接到电器店去购买,也就是通过电器店工厂父类去new我们所需要的笔记本子类。这样子我们就降低了依赖子类对象,我们要用到子类也只需通过工厂类去创建。
四、代码实现:
1、抽象出父类(笔记本类),这里直接抽象出笔记本这个父类更方便理解,相当于上述情景中的电器店。
public abstract class NoteBook { public abstract void SayHello(); }
2、各子类继承于父类(联想品牌和IBM品牌)
public class Lenovo : NoteBook { public override void SayHello() { Console.WriteLine("我是联想笔记本,你联想也别想"); } }
public class IBM : NoteBook { public override void SayHello() { Console.WriteLine("我是IBM笔记本"); } }
3、调用时子类赋值给父类
static void Main(string[] args) { Console.WriteLine("请输入你想要的笔记本品牌"); string brand = Console.ReadLine(); NoteBook nb = GetNoteBook(brand); nb.SayHello(); Console.ReadKey(); } public static NoteBook GetNoteBook(string brand) { NoteBook nb = null; switch (brand) { case "Lenovo": nb = new Lenovo(); break; case "IBM": nb = new IBM(); break; } return nb; }
五、总结:
简单工厂模式只是把变化移到了工厂类中罢了,没有变化的问题,因为如果我们想要新的笔记本品牌时,此时我们还是需要修改工厂类中的方法,也就是多加case语句。这个就是简单工厂模式的缺点所在,而且不止这点,工厂类一旦不能正常工作,整个系统都会受到影响。
然而,简单工厂模式与之前的实现也有它的优点:
1、简单工厂模式解决了客户端直接依赖于具体对象的问题,客户端可以消除直接创建对象的责任,而仅仅是消费产品。简单工厂模式实现了对责任的分割。
2、简单工厂模式也起到了代码复用的作用,去购买笔记本的所有人只需要负责消费就可以了,并不需要在自己类中实现,此时简单工厂的方法就让所有客户共用了。
标签:string code 赋值 工作 代码复用 修改 nbsp 作用 c#
原文地址:https://www.cnblogs.com/jiechou/p/9053993.html