首页 > 其他分享 >简易的工厂设计模式

简易的工厂设计模式

时间:2023-03-08 10:22:05浏览次数:43  
标签:IAnimal 创建对象 工厂 简易 设计模式 public Speak

工厂设计模式是一种创建型设计模式,它提供了一种创建对象的最佳方式,而无需暴露对象的创建逻辑。在工厂模式中,我们定义一个接口或抽象类,该接口或抽象类用于创建对象,但让子类决定要实例化的类。工厂方法模式使类的实例化延迟到其子类。

下面是一个完整的C#实现案例:

首先,我们定义一个接口,用于创建对象:

public interface IAnimal
{
    void Speak();
}

然后,我们定义两个实现该接口的类:

public class Dog : IAnimal
{
    public void Speak()
    {
        Console.WriteLine("狗说:汪,汪");
    }
}

public class Cat : IAnimal
{
    public void Speak()
    {
        Console.WriteLine("猫说:喵。");
    }
}

接下来,我们定义一个工厂类,该类根据传入的参数创建相应的对象:

public class AnimalFactory
{
    public IAnimal GetAnimal(string animalType)
    {
        switch (animalType.ToLower())
        {
            case "dog":
                return new Dog();
            case "cat":
                return new Cat();
            default:
                throw new ArgumentException("无效动物型");
        }
    }
}

最后,我们可以使用工厂类来创建对象:

AnimalFactory animalFactory = new AnimalFactory();

IAnimal dog = animalFactory.GetAnimal("dog");
dog.Speak(); // 输出:狗说:汪汪

IAnimal cat = animalFactory.GetAnimal("cat");
cat.Speak(); // 输出:猫说:喵

在这个例子中,我们使用工厂类来创建不同类型的动物对象,而不需要暴露对象的创建逻辑。这使得我们可以轻松地添加新的动物类型,而不需要修改现有的代码。

标签:IAnimal,创建对象,工厂,简易,设计模式,public,Speak
From: https://www.cnblogs.com/hejiale010426/p/17191045.html

相关文章

  • 前端设计模式——发布订阅模式
    JavaScript中的发布/订阅模式(Pub/Sub)是一种常用的设计模式。它允许在应用程序中定义对象之间的一对多的依赖关系,当一个对象的状态发生变化时,所有依赖于它的对象都会被通知......
  • 设计模式之总述【3】【待完善】
    1概述设计模式大致上存在23种经典的设计模式。它们又可以分为三大类;而对于常用的设计模式,我们要花多点时间理解掌握。对于不常用的设计模式,我们只需要稍微了解即可。......
  • 《设计模式之禅》Proxy_Pattern--代理模式
    代理模式这一章以潘金莲和王婆以及西门庆三人的故事作为程序的对象,下面就通过西门庆与潘金莲的故事来理解代理模式,途中车速过高,各位请系好安全带,发车喽!!!什么是代理模式呢?......
  • 简易倒计时
    针对Date对象,做一个小小的补充.Date不仅是用于日期时间的计算功能,还能充当倒计时.//计算出当前时间距离周末(2023/3/12)还有x天x时x分x秒,并把它渲染到网页里function......
  • 详细讲解23种设计模式
    详细讲解23种设计模式 工厂方法模式(FactoryMethodPattern)工厂方法模式是一种创建型设计模式,它定义了一个用于创建对象的接口,但由子类决定要实例化的类是哪一个。工......
  • 多线程设计模式-全面详解(学习总结---从入门到深化)
    目录​​SingleThreadExecution设计模式​​​​机场过安检​​​​ 非线程安全​​​​ 问题分析​​​​首字母相同却未通过检查​​​​为何出现首字母不相同的情况......
  • 创建型:工厂模式-工厂方法、抽象工厂
    问题简单工厂中我们通过参数来返回不同的产品对象,如果管理的对象过多,这个工厂函数会比较庞大,且当我们需要增加一个新的产品时,需要修改这个工厂方法,违反开闭原则(对拓展开......
  • JS 设计模式
    为什么会出现设计模式随着公司业务的不断迭代和扩张,项目的复杂程度也在不断加强,如果不采取一些方法那么项目会变的难以开发及维护;而设计模式就是为了解决这样的问题诞生......
  • 设计模式-javascript实现【状态模式】
    定义:允许一个对象在其内部状态改变时改变它的行为,对象看起来似乎修改了它的类。其主要原理是将状态封装成独立的类,并将请求委托给当前的状态对象,当对象内部状态变化时,会......
  • 前端设计模式——单例模式
    单例模式是一种设计模式,它可以确保某个类只有一个实例,并提供一个全局的访问点来访问该实例,我们可以使用单例模式来管理全局状态和共享资源。在JavaScript中,单例模式可以通......