C#工廠模式-工廠方法


簡單工廠:

  工廠模式:簡單工廠,工廠方法,抽象工廠三種.   工廠方法(力求簡潔)

  工廠即為生產東西的地方.在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();
        }
    }


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM