设计模式工厂模式

Posted 王思琪^

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了设计模式工厂模式相关的知识,希望对你有一定的参考价值。

一、定义

一个创建对象的接口,让其子类自己决定实例化哪一个工厂类,工厂模式使其创建过程延迟到子类进行

具体实现

namespace 工厂方法

    internal class Program
    
        static void Main(string[] args)
        
            //我要一个苹果X手机
            IApplePhoneFactory applexPhone = new IphoneXFactory();
            IAppleProduct X = applexPhone.getAppleProduct();
            //我要一个苹果手机
            IphoneXProduct iphoneX = new IphoneXProduct();

        
    

    //构建苹果手机工厂接口
    interface IApplePhoneFactory
    
        //获取具体产品
        IAppleProduct getAppleProduct();

    

    //抽象的产品接口
    public interface IAppleProduct
    
        void ProductIphone();
    

    //苹果X产品的具体实现工厂
    public class IphoneXFactory : IApplePhoneFactory
    
        //实现
        public IAppleProduct getAppleProduct()
        
            return new IphoneXProduct();
        
    
    //苹果X产品生产类
    public class IphoneXProduct : IAppleProduct
    
        public void ProductIphone()
        
            Console.WriteLine("我是苹果X");
        
    

二、应用

1、主要解决

接口选择的问题

2、什么时候使用?

当我们明确地计划不同条件下创建不同实例的时候

3、如何解决

让其子类实现工厂接口,返回的也是一个抽象的产品

4、优点

  • 一个调用者想创建一个对象,只要知道其名称就可以了
  • 扩展性高,如果增加一个产品,只要扩展一个工厂类就可以
  • 屏蔽产品的具体实现,调用者只关心产品的接口

5、缺点

每次增加一个产品时,都需要增加一个具体类和对象实现工厂,使得系统中类的个数成倍增加,在一定程度上增加了系统的复杂度,同时也增加了系统具体类的依赖

以上是关于设计模式工厂模式的主要内容,如果未能解决你的问题,请参考以下文章

工厂模式与抽象工厂模式

工厂模式

创建型模式--工厂模式

设计模式-工厂模式

设计模式—工厂模式

工厂模式