zoukankan      html  css  js  c++  java
  • 工厂模式之工厂方法案例

    工厂方法模式

    首先创建控制台应用程序项目

    1.创建AbstractProduct抽象产品类。在该类中定义抽象产品方法。

    public abstract class IAbstractProduct
        {
            public abstract string Add();
        }

    2.创建ProductAProductB两个具体产品类。请根据工厂方法模式的内容,在两个具体产品类中添加内容。

    public class ProductA : AbstractProduct.IAbstractProduct
        {
            public override string Add()
            {
                return "创建具体产品A";
            }
        }
    
    public class ProductB:AbstractProduct.IAbstractProduct
        {
            public override string Add()
            {
                return "创建具体产品B";
            }
        }

    3.创建AbstractFactory抽象工厂类。在该类中定义抽象工厂方法。

    public abstract class IAbstractFactory
        {
            public abstract AbstractProduct.IAbstractProduct Create();
        }

    4.创建ConcreteFactoryAConcreteFactoryB两个具体工厂类。根据工厂方法模式的内容,在两个具体工厂类中添加内容

    public class ConcreteFactoryA : AbstractFactory.IAbstractFactory
        {
            public override IAbstractProduct Create()
            {
                return new ProductA();
            }
        }
    
    public class ConcreteFactoryB:AbstractFactory.IAbstractFactory
        {
            public override IAbstractProduct Create()
            {
                return new ProductB();
            }
        }

    5.Program类中,调用不同的工厂类实例化不同的产品类,通过Console.WriteLint()输出对应的提示信息。

    static void Main(string[] args)
            {
                IAbstractFactory factoryA = new ConcreteFactory.ConcreteFactoryA();
                IAbstractProduct product1 = factoryA.Create();
                Console.WriteLine(product1.Add());
                IAbstractFactory factoryB = new ConcreteFactory.ConcreteFactoryB();
                IAbstractProduct product2 = factoryB.Create();
                Console.WriteLine(product2.Add());
                Console.ReadKey();
            }

    结果:

  • 相关阅读:
    机器学习【工具】:Numpy
    机器学习【算法】:KNN近邻
    【笔记】:字典内部剖析
    【笔记】:谁偷了我的内存?
    什么是RESTful框架
    音频下载服务
    【模块】:Requests(二)
    【模块】:Weakref
    异步Web服务(二)
    【Win10】UAP/UWP/通用 开发之 RelativePanel
  • 原文地址:https://www.cnblogs.com/lhl123/p/10642699.html
Copyright © 2011-2022 走看看