C# 设计模式-抽象工厂(Abstract Factory)

来源:互联网 发布:网站域名加急备案 编辑:程序博客网 时间:2024/05/19 02:02

以下是个人观点:

具体工厂实现抽象工厂,创建不同的一系列具体产品。

工厂和相关接口、类:

using System;namespace AbstractFactory{    /// <summary>    /// 抽象工厂    /// </summary>    interface IAbstractFactory    {        IPen CreatePen();    }    /// <summary>    /// 具体工厂A    /// </summary>    class AFactory : IAbstractFactory    {        public IPen CreatePen()        {            return new PenA();        }    }    /// <summary>    /// 具体工厂B    /// </summary>    class BFactory : IAbstractFactory    {        public IPen CreatePen()        {            return new PenB();        }    }    /// <summary>    /// 接口笔    /// </summary>    interface IPen    {        void Write();    }    /// <summary>    /// 笔A    /// </summary>    class PenA : IPen    {        public void Write()        {            Console.WriteLine("工厂A,创建产品PenA");        }    }    /// <summary>    /// 笔B    /// </summary>    class PenB : IPen    {        public void Write()        {            Console.WriteLine("工厂B,创建产品PenB");        }    }}

调用:

namespace AbstractFactory{    class Program    {        static void Main(string[] args)        {            //不同工厂,创建不同产品            Write(new AFactory());            Write(new BFactory());        }        private static void Write(IAbstractFactory factory)        {            IPen pen = factory.CreatePen();            pen.Write();        }    }}

结果:
这里写图片描述

参考资料:《设计模式-可复用面对对象软件的基础》

阅读全文
0 0
原创粉丝点击