【设计模式】工厂方法模式

工厂方法模式(FACTORY METHOD)是属于创建型模式。工厂方法提供一个创建一系列相关或相互依赖的对象的接口,而无需指定它们具体的类。相比简单工厂模式,工厂方法不在工厂类中做决策,而是把这个决策推迟到每个用到他的地方。

优点
用户只需要关心所需产品的对应工厂,无需关心细节
加入新产品符合开闭原则,提高可扩展性

缺点
类的个数容易过多,增加复杂度
增加了系统的抽象性和理解难度

C#代码:

using System;

namespace ConsoleApp
{

    public interface IBird
    {
        string Talk();
    }

    public class Dove : IBird
    {
        public Dove()
        {

        }

        public string Talk()
        {
            return "I am a dove";
        }
    }

    public class Eagle : IBird
    {
        public Eagle()
        {

        }

        public string Talk()
        {
            return "I am a eagle!";
        }
    }


    public interface IBirdFactory
    {
        IBird CreateBird();
    }

    public class DoveFactory : IBirdFactory
    {
        public IBird CreateBird()
        {
            return new Dove();
        }
    }

    public class EagleFactory : IBirdFactory
    {
        public IBird CreateBird()
        {
            return new Eagle();
        }
    }


    public class Program
    {
        static void Main(string[] args)
        {
            string talkContent;

            DoveFactory doveFactory = new DoveFactory();
            talkContent = doveFactory.CreateBird().Talk();
            Console.WriteLine(talkContent);

            EagleFactory eagleFactory = new EagleFactory();
            talkContent = eagleFactory.CreateBird().Talk();
            Console.WriteLine(talkContent);





            Console.Read();
        }
    }
}

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值