工厂方法模式

工厂设计模式解决的问题是简单工厂设计模式中对类进行修改的时候就要修改原来的工厂类,那么久违背了开放封闭原则。
工厂方法模式:定义一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法使一个类的实例化延迟到其子类中。这就意味着在客户端需要决定实例化哪一个工厂来实现运算类,选择判断的问题还是存在的。
这里写图片描述

参考代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
/// <summary>
/// 通过一系列工厂将要生成的对象放入特定的工厂
/// 将类的实例化过程延迟到了工厂子类完成
/// </summary>
namespace 工厂设计模式
{
    public abstract class Student
    {
        public abstract void Learn();
    }


    class UnityStudent : Student
    {
        public override void Learn()
        {
            Console.WriteLine("我要做Unity开发工程师");
        }
    }

    class H5Student : Student
    {
        public override void Learn()
        {
            Console.WriteLine("我要做H5开发工程师");
        }
    }

    interface IFactory
    {
        Student GenerateStudent();
    }

    class QKUnityFactory : IFactory
    {
        public Student GenerateStudent()
        {
            return new UnityStudent();
        }
    }

    class QKH5Factory : IFactory
    {
        public Student GenerateStudent()
        {
            return new H5Student();
        }
    }
    class Program
    {
        static void Main(string[] args)
        {
            IFactory unityStudentFactory = new QKUnityFactory();
            Student unityStudent = unityStudentFactory.GenerateStudent();
            unityStudent.Learn();

            IFactory h5StudentFactory = new QKH5Factory();
            Student h5Student = h5StudentFactory.GenerateStudent();
            h5Student.Learn();
        }
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
工厂方法模式是一种常见的创建型设计模式,它定义了一个用于创建对象的接口,但是由子类决定要实例化的类是哪一个。在工厂方法模式中,创建对象的过程被分离出来,使得这个过程可以被子类定制化,从而提高了代码的可扩展性和可维护性。 工厂方法模式的核心思想是将对象的创建和使用分离开来,客户端只需要知道所需对象的类型,而无需关心对象的创建过程。具体来说,工厂方法模式包含以下几个角色: 1. 抽象工厂(Abstract Factory):定义了工厂方法的接口,用于创建产品对象。 2. 具体工厂(Concrete Factory):实现抽象工厂接口,根据具体需求创建具体产品对象。 3. 抽象产品(Abstract Product):定义了产品的接口,用于描述产品的属性和行为。 4. 具体产品(Concrete Product):实现抽象产品接口,提供具体的实现。 使用工厂方法模式可以将客户端代码和具体产品的实现代码分离开来,使得代码更加灵活和可扩展。工厂方法模式在实际应用中也有很多场景,例如: 1. 当一个类不知道它所必须创建的对象的类的时候。 2. 当一个类希望由它的子类来指定所创建的对象的时候。 3. 当类将创建对象的职责委托给多个帮助子类中的某个特定子类,并且希望能够在运行时切换这些子类中的哪一个时。 总之,工厂方法模式是一种非常实用的设计模式,可以提高代码的可维护性和可扩展性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

yy763496668

您的鼓励是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值