标签: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();
}
}
标签:def efault class rac 就是 cto over cow 耦合度
原文地址:https://www.cnblogs.com/mff520mff/p/9591308.html