1. 程式人生 > >C#設計模式(1)————簡單工廠模式

C#設計模式(1)————簡單工廠模式

actor nbsp str public ole 面向對象 class a ase ons

空出時間總結一下,不然之後又忘了

一、介紹

工廠顧名思義就是生產產品的地方,但是此工廠非彼工廠,我們這裏的工廠說的是生產對象的一個類。我們平常的編程中使用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)————簡單工廠模式