簡單工廠:
工廠模式:簡單工廠,工廠方法,抽象工廠三種. 工廠方法(力求簡潔)
工廠即為生產東西的地方.在C#也有這種模式,充分利用了面向對象語言的三大特征(多態,繼承),簡單工廠.工廠的功能就是生產,而生產些什么呢?一個工廠可以生產鞋子,生產衣服.它們所處的車間不一樣,所以需要兩個不同的類,這兩個類繼承工廠生產這個功能.(簡單工廠)
工廠方法,簡單工廠的進階版.那么對比簡單工廠,工廠方法強在哪里?
對比:簡單工廠中只有工廠是抽象的,也就是說只有這個工廠只有這么一處可變的.工廠方法中,會有兩處可變的,①工廠的抽象類②產品的抽象類.其次在工廠方法中產品的具體實現也是往后推,在簡單工廠中產品實現是在工廠的抽象類中,在工廠方法中,產品的實現推到了產品的抽象類中.
工廠方法的優點:能夠很好的添加一樣新產品,不用破壞邏輯,(簡單工廠中,需要添加case語句),在工廠方法中再添加一個產品以及相對應的工廠即可
介紹完畢,上干貨
工廠接口
**注意方法的返回類型,是產品接口
public abstract class IFactory { public abstract IThing Production(); }
產品接口
public abstract class IThing { public abstract void Thing(); }
鞋子產品類(包含產品的具體實現)
public class ShoesClass : IThing { public override void Thing() { Console.WriteLine("生產了鞋子"); } }
鞋子工廠(不包含產品的實現)
public class ShoesFactory : IFactory { public override IThing Production() { return new ShoesClass(); } }
控制台
class Program { static void Main(string[] args) { IFactory factory = new ShoesFactory(); IThing thing = factory.Production(); thing.Thing(); Console.ReadKey(); } }