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();
            }

    结果:

  • 相关阅读:
    洛谷 P1226 【模板】快速幂||取余运算 题解
    洛谷 P2678 跳石头 题解
    洛谷 P2615 神奇的幻方 题解
    洛谷 P1083 借教室 题解
    洛谷 P1076 寻宝 题解
    洛谷 UVA10298 Power Strings 题解
    洛谷 P3375 【模板】KMP字符串匹配 题解
    Kafka Shell基本命令
    Mybatis与Hibernate的详细对比
    MyBatis简介
  • 原文地址:https://www.cnblogs.com/lhl123/p/10642699.html
Copyright © 2011-2022 走看看