C#設計模式(1)————簡單工廠模式
空出時間總結一下,不然之後又忘了
一、介紹
工廠顧名思義就是生產產品的地方,但是此工廠非彼工廠,我們這裏的工廠說的是生產對象的一個類。我們平常的編程中使用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)————簡單工廠模式