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

    结果:

  • 相关阅读:
    Memcached 测试
    Task WaitAll的用法
    Linux Memcached 安装
    开发常用的一些插件
    转:浅析VO、DTO、DO、PO的概念、区别和用处
    转:数据库的快照隔离级别(Snapshot Isolation)
    转:nolock的替代方案-提交读快照隔离[行版本控制]
    转:介绍一个好用的抓取dump的工具-ProcDump
    把sqlserver查询结果复制到Excel出现数据记录遗漏
    ASP.NET_SessionId 不相同导致验证码出错
  • 原文地址:https://www.cnblogs.com/lhl123/p/10642699.html
Copyright © 2011-2022 走看看