C#设计模式(1)————简单工厂模式

2021-07-13 00:06

阅读:326

标签:def   efault   class   rac   就是   cto   over   cow   耦合度   

空出时间总结一下,不然之后又忘了

一、介绍

工厂顾名思义就是生产产品的地方,但是此工厂非彼工厂,我们这里的工厂说的是生产对象的一个类。我们平常的编程中使用new来创建对象,此时类依赖于这个对象,他们的耦合度高,需求变化了就需要修改类的源码。这样是不是很繁琐。如果需求不断变化就需要不断修改源码。此时我们可以通过面向对象的原则来解决这一问题,即封装改变,把需要改变的代码通过类来进行封装,简单工厂模式也就应运而生。 我们看看代码是怎样实现的

 

二、代码实现举例

//抽象类 动物

public abstract class Animal
{
      public abstract void Eat();
}

//小狗
public class Dog : Animal
{
      public override void Eat()
     {
        Console.WriteLine("小狗啃骨头");
     }
}

//小牛

public class Cow : Animal
{
     public override void Eat()
     {
        Console.WriteLine("小牛吃草");
     }
}

//蛇
public class Snake : Animal
{
      public override void Eat()
     {
        Console.WriteLine("蛇吃肉");
     }
}

//小猫

public class Cat : Animal
{
     public override void Eat()
     {
        Console.WriteLine("小猫吃鱼");
     }
}

 

 

//工厂类

public class AnimalFactory
{
     public static Animal Factory(string type)
     {
           Animal animal;

           switch (type)
           {
                case "小狗":
                          animal = new Dog();
                          return animal;
                case "小猫":
                          animal = new Cat();
                          return animal;
                case "蛇":
                          animal = new Snake();
                          return animal;
                 case "牛":
                          animal = new Cow();
                          return animal;
                          default:
                          return null;
          }

      }
}

 

 

//调用

class Program
{
      static void Main(string[] args)
      {
           var dog = AnimalFactory.Factory("小狗");
           dog.Eat();


           var car = AnimalFactory.Factory("小猫");
           car.Eat();
           Console.ReadKey();
      }
}

C#设计模式(1)————简单工厂模式

标签:def   efault   class   rac   就是   cto   over   cow   耦合度   

原文地址:https://www.cnblogs.com/mff520mff/p/9591308.html


评论


亲,登录后才可以留言!